Czytanie, pisanie i rysowanie – cd.. Jeszcze jeden strumyk PrintStream działa jak PrintWriter, ale: Używa domyślnego (systemowego) kodowania Nie wyrzuca.

Slides:



Advertisements
Podobne prezentacje
Wstęp do strumieni danych
Advertisements

C++ wykład 2 ( ) Klasy i obiekty.
C++ wykład 4 ( ) Przeciążanie operatorów.
Mgr inż.Marcin Borkowski Podstawy Java Część II
Programowanie obiektowe
1 Dzisiejszy wykład Wzorce funkcji Wzorce klas. 2 Wzorce Często pojawia się konieczność pisania podobnych funkcji lub klas operujących na argumentach.
Programowanie obiektowe
1 Dzisiejszy wykład Wzorce funkcji Wzorce klas Tablica asocjacyjna Składowe statyczne.
Klasy i obiekty.
Wzorce.
Język ANSI C Funkcje Wykład: Programowanie komputerów
Dziedziczenie. Po co nam dziedziczenie? class osoba { char * imie, char * imie, * nazwisko; * nazwisko;public: void wypisz_imie(); void wypisz_imie();
Języki programowania C++
formatowanie kodu źródłowego
Java applet (c.d.) Nguyen Hung Son Uniwersytet Warszawski.
Serwery Aplikacji ASP .NET Web Objects Arkadiusz Popa.
DZIEDZICZENIE · klasy bazowe i klasy pochodne WyświetlAutora( ) Autor
ODE Triggery. Wstęp n Triggery są trójką zdarzenie-warunek-akcja (event-condition- action). n Zdarzenia mogą być proste lub złożone, co zostanie omówione.
ODE Informacje wstępne. Pojęcia podstawowe n Obiektowa baza danych u język komunikacji u ziarnistość obiektów u identyfikacja obiektów n Transakcja -
Inżynieria oprogramowania Lecture XXX JavaTM – część IV: IO
Programowanie imperatywne i język C Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie.
1 Dygresja: cztery płyty główne…. 2 Dygresja: osobliwości C /* cos o nieistniejacym typie Boolean */ /* oraz o operatorze przecinkowym */ #include int.
C++ wykład 2 ( ) Klasy i obiekty.
Czytanie, pisanie i rysowanie (czyli klasa I szkoły podstawowej)

dr Anna Kwiatkowska Instytut Informatyki
Podstawy C# Grupa .NET PO.
Klasy w C++. Deklaracja klasy class NazwaTwojejKlasy { //w tym miejscu piszemy definicje typów, //zmienne i funkcje jakie mają należeć do klasy. }; //tutaj.
Pakiety w Javie Łukasz Smyczyński (132834). Czym są pakiety? Klasy w Javie są grupowane w pewne zbiory zwane pakietami. Pakiety są więc pewnym podzbiorem.
Programowanie obiektowe III rok EiT
Programowanie urządzeń mobilnych – wykład IV
Java 3 MPDI Programowanie obiektowe W7. import java.io.*; public class X { // kontrukcja throws – określenie jakie wyjątki może dana metoda // sygnalizować
Podstawy inżynierii oprogramowania Zofia Kruczkiewicz
PIO 3_2, Zofia Kruczkiewicz1 Wykład 3 – część druga Iteracyjno-rozwojowy cykl oprogramowania 3.
W większości języków programowania biblioteki wejścia/wyjścia ukrywają szczegóły obsługi poszczególnych mediów pod abstrakcją strumienia (ang. stream).
JAVA c.d.. Instrukcji wyboru SWITCH używamy, jeśli chcemy w zależności od wartości pewnego wyrażenia wykonać jeden z kilku fragmentów kodu. Jest to w.
Programowanie obiektowe III rok EiT
Andrzej Repak Nr albumu
Java – coś na temat Klas Piotr Rosik
Inicjalizacja i sprzątanie
Seminarium problemowe
Programowanie obiektowe Wykład 3 dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/21 Dariusz Wardowski.
Programowanie obiektowe Wykład 7 dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/20 Dariusz Wardowski.
Programowanie obiektowe Wykład 6 dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/14 Dariusz Wardowski.
Podstawy informatyki 2013/2014 Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi.
  ELEMENTY JĘZYKA JAVA komentarze w Javie, słowa kluczowe i operatory, proste typy danych, tablice, podstawowy zestaw instrukcji.
OCPJP Inner classes.
Kurs języka C++ – wykład 5 ( )
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
Technologie internetowe Wykład 5 Wprowadzenie do skrytpów serwerowych.
Programowanie obiektowe Wykład 9 dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/15 Dariusz Wardowski.
Paweł Starzyk Obiektowe metody projektowania systemów
Waldemar Bartyna 1 Programowanie zaawansowane LINQ to XML.
Dziedziczenie Wykład 7 Dziedziczenie sekwencyjne
Wykład 11 Aplikacje SDI PO11-1 / 22 Single Document Interface 1.Klasy aplikacji SDI 2.Menu systemowe aplikacji SDI 3.Serializacja 4.Tworzenie widoku 5.Tworzenie.
PO13-1 / 19 Wykład 13 Wyjątki i ich zgłaszanie Wyłapywanie wyjątków Obsługa wyjątków Wykorzystanie polimorfizmu Filtrowanie wyjątków Błędy w konstruktorach.
Podstawy informatyki Operatory rzutowania Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały.
do programowania obiektowego w języku Groovy
K URS JĘZYKA C++ – WYKŁAD 3 ( ) Przenoszenie Składowe statyczne Funkcje wbudowane Argumenty domyślne.
InMoST, Java – przykładowa aplikacja Bartosz.Michalik
Podstawowe konstrukcje języka Java Bartosz Walter InMoST Wielkopolska sieć współpracy w zakresie innowacyjnych metod wytwarzania oprogramowania Termin.
C++ mgr inż. Tomasz Turba Politechnika Opolska 2016.
Język Java Paweł Rajba
Programowanie Obiektowe – Wykład 6
(według:
Akademia C# - Lab2 Zmienne, instrukcje warunkowe, pętle, debugger,
Programowanie Obiektowe – Wykład 2
Iteracyjno-rozwojowy cykl oprogramowania 3
Założenia projektowe Javy
Zapis prezentacji:

Czytanie, pisanie i rysowanie – cd.

Jeszcze jeden strumyk PrintStream działa jak PrintWriter, ale: Używa domyślnego (systemowego) kodowania Nie wyrzuca wyjątków poza konstruktorami –ustawia tylko flagę, którą można sprawdzić metodą checkError() Można konstruować z OutputStream (ustawiając ew. autoFlush) lub bezpośrednio z nazwy pliku lub pliku Udostępnia –print|println(int|long|float|double|String) –printf(format,…)

I jedna metoda: W każdej klasie możemy na(d)pisać metodę String toString() Będzie ona używana przy rzutowaniu obiektu naszej klasy na String (niespodzianka: takie rzutowanie jest zawsze dozwolone!)

Przykład toString() public class Point { protected int dimension = 0; protected float[] coordinates = null;... public String toString() { if (coordinates==null) return "()"; else { StringBuffer b = new StringBuffer("("); for (int i=0; i<coordinates.length; i++) { b.append(""+ coordinates[i]); if (i<coordinates.length-1) b.append(","); } return b+")"; }

I możemy teraz drukować punkty float[] a = {"1,2,3"}; Point p = new Point(a); println(""+p); Point2D oczywiście odziedziczy tę metodę. Przy okazji:....split("(|,|)") Potnie wynik toString na elementy tablicy coordinates do wczytania przez Float.parseFloat()

Object...Stream i serializacja Obiekt może być serializowalny : class Point implements Serializable Typy proste są serializowalne z natury, podobnie jak tablice, kontenery, typ String i inne (sprawdzamy w Javadoc, czy dany typ implements Serializable) Własnym klasom implementujemy Serializable sami (zwykle trywialnie) pamiętając, że serializacja jest głęboka – logiczne! Można pominąć serializację pola prefiksując je słowem transient

Serializacja – cd. Serializację można zaimplementować samodzielnie pisząc metody private void writeObject(java.io.ObjectOutputStream out) throws IOException private void readObject(java.io.ObjectInputStream in) throws IOException, ClassNotFoundException; private void readObjectNoData() throws ObjectStreamException; Można przy tym wołać in.defaultReadObject() i out.defaultWriteObject() A potem np. odtwarzać pola transient

Ostrożnie, obiekt serializowany! Problem: automatyczne pisanie sygnatury long serialVersionUID sprawdzanej przy deserializacji. Obejście serialVersionUID można nadpisać, np.: private static final long serialVersionUID = 1L; serialver class zwraca automatyczną wartość serialVersionUID - polecane serialVersionUID zmieniamy, gdy: Zmieniły się serializowane (nie transient) pola – zawsze Istotnie zmieniła się klasa – według uznania

Object...Stream – cd. Mając obiekt klasy serializable możemy go zapisać: Point pt =.... ObjectOutputStream out = new ObjectOutputStream( new FileOutputStream(fileName)); out.writeObject(pt); I odczytać ObjectInputStream in = new ObjectInputStream( new FileInputStream(fileName)); Point pt = in.ReadObject(); Lub przesłać przez sieć i mieć pewność, że zostanie prawidłowo odczytany...

GUI czytania i pisania: // Budujemy okienko katalogu private JFileChooser fileChooser = new JFileChooser(); private FileFilter filter = new FileNameExtensionFilter("JPEG file","jpg","jpeg"); fileChooser.addFileFilter(filter); // I uaktywniamy je po naciśnięciu przycisku saveButton : private void saveButtonActionPerformed(java.awt.event.ActionEvent evt) { int returnVal = dynChooser.showOpenDialog(null); // Użytkownik wybrał plik if (returnVal == JFileChooser.APPROVE_OPTION) try { // więc otwieramy zgodnie z potrzebami DataOutputStream out = new DataOutputStream( new FileOutputStream( dynChooser.getSelectedFile())); // lub PrintStream printout = new PrintStream( dynChooser.getSelectedFile()));......