Strumienie i serializacja
|
|
- Kazimierz Henryk Kowalewski
- 8 lat temu
- Przeglądów:
Transkrypt
1 Strumienie i serializacja Prezentacja dostępna na Syriuszu:
2 Klasy: InputStream, OutputStream, Reader i Writer W Javie hierarchia strumieni oparta jest o cztery klasy: InputStream OutputStream Reader Writer InputStream i Reader to strumienie danych wejściowych, natomiast OutputStream i Writer strumienie danych wyjściowych. Inny podział dotyczy obsługi danych binarnych, która reprezentowana jest przez InputStream i OutputStream oraz do obsługi danych znakowych poprzez klasy Reader i Writer.
3 Typy strumieni Wszystkie typy strumieni są podklasami klas: InputStream, OutputStream, Reader i Writer podklasy FileInputStream, FileOutputStream, FileReader i FileWriter - służą do odczytu i zapisu plików dyskowych, jako pierwszy parametr konstruktora przekazujemy nazwę pliku, drugi parametr jest opcjonalny, jest to wartość logiczna informująca o tym czy plik zostanie nadpisany, czy dane mają być dopisywane na jego koniec ByteArrayInputStream, ByteArrayOutputStream, CharArrayReader i CharArrayWriter - reprezentują bufor pamięci oparty na tablicy bajtów / znaków, przy tworzeniu obiektu wejściowego należy podać w konstruktorze tablicę na której ma być oparty, natomiast przy wyjściowym - początkowy rozmiar bufora
4 Typy strumieni StringBufferInputStream (nie istnieje StringBufferOutputStream), StringReader i StringWriter - bufor w pamięci oparty na napisie String, przy tworzeniu obiektu wejściowego przekazujemy mu napis na którym ma być oparty, a przy wyjściowym początkowy rozmiar bufora (zaleca się używanie klas StringReader i StringWriter) PipedInputStream, PipedOutputStream, PipedReader i PipedWriter - służą do komunikacji międzyprocesowej, na początku przy pomocy konstruktora bezparametrowego tworzymy obiekt wejściowy lub wyjściowy, a następnie przekazujemy go konstruktorowi obiektu odpowiednio wyjściowego lub wejściowego, wówczas strumienie zostaną połączone łączem, które będzie przesyłać dane od strumienia wyjściowego do wejściowego
5 Operacje na strumieniach Otwieranie strumienia: strumień jest automatycznie otwierany przy tworzeniu obiektu-strumienia. istnieje również metoda open. Czytanie ze strumienia: metoda read() - zwraca -1 w przypadku błędu odczytu, w przypadku sukcesu standardowo bajt lub dwubajtowy znak, przeciążona może zwracać inne typy (np. łańcuch znaków) Zapisywanie do strumienia: metoda write() - standardowo jako parametr przyjmuje bajt lub dwubajtowy znak, przeciążona może przyjmować inne inne typy (np. łańcuch znaków) Zamykanie strumienia: metoda close(), poza tym otwarty strumień zamykany jest przy niszczeniu obiektu
6 Operacje na strumieniach Uwaga: należy pamiętać o zamykaniu strumieni szczególnie ze względu na fakt, że dla niektórych zasobów, takich jak np. pliki dyskowe czy połączenia sieciowe, obowiązują limity na liczbę naraz otwartych egzemplarzy. W celu gwarancji, że zasoby zostaną zwolnione strumień najlepiej zamykać w bloku finally.
7 Operacje na strumieniach - przykład import java.io.filereader; import java.io.ioexception; public class Czytaj { public static void main(string[] args) throws IOException { FileReader czytacz = new FileReader("/tmp/jakis_plik.txt"); try { int i; // metoda read() zwraca w tym wypadku dwubajtowy znak, // jeśli odczyt sie powiódł, w przeciwnym razie -1 while ((i = czytacz.read())!= -1) System.out.print((char) i); } finally { czytacz.close(); // dzięki umieszczeniu w finally // strumień zostanie zamknięty nawet // przy wystąpieniu wyjątku } } }
8 Konwersje pomiedzy strumieniami Strumień binarny można przekształcić na strumień znakowy (taka konwersja czasami jest bardzo przydatna, np. podczas kompresji i dekompresji danych). Służą do tego klasy: InputStreamReader - czyta bajty i dekoduje je na znaki (można wybrać kodowanie), np.: BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); OutputStreamWriter - znaki zapisane do niego są kodowane do bajtów (zależy od kodowania) Writer out = new BufferedWriter(new OutputStreamWriter(System.out));
9 Wzorzec projektowy dekorator należy on do grupy wzorców strukturalnych pozwala na rozszerzanie funkcjonalności istniejących klas dynamicznie, polega to na opakowaniu klasy w nową klasę dekorującą (zwykle przekazuje się obiekt jako parametr konstruktora dekoratora). dekoratory są alternatywą dla dziedziczenia w przeciwieństwie do niego rozszerzają klasy w czasie działania programu, a nie w czasie kompilacji nowe zachowanie dodawane jest tylko dla pojedyńczego obiektu, a nie dla całej klasy przykładem wzorca dekoratora jest implementacja strumieni I/O w Javie
10 Wzorzec projektowy dekorator
11 Standardowe wejście / wyjście podobnie jak w systemach Unixowych, w Javie dane wejściowe dla programu są odczytywane z jednego strumienia standardowego wejścia (ang. standard input), dane wyjściowe są wysyłane do standardowego wyjścia (ang. standard output), a informacje o błędach do standardowego wyjścia błędu (ang. standard error) umożliwia to łączenie programów w potoki przetwarzania w Javie dostęp do standardowego wejścia / wyjścia zapewniają zmienne statyczne klasy System System.out i System.err (standardowe wyjście i wyjście błędów) opakowane są w PrintStream System.in (standardowe wejście) to zwykły InputStream, ze względu na fakt że ze standardowego wyjścia najczęściej czytamy dane tekstowe, warto opakować go w BufferedReader, aby można było używać metody readline();
12 Przekierowywanie standardowego wejścia/wyjścia Do przekierowania standardowego wyjścia, wejścia i wejścia błędu służą metody: setout(printstream) setin(inputstream) seterr(printstream)
13 Kompresja? Nic prostszego! Kompresji w Javie może dokonać w prosty sposób używając gotowych dekoratorów z pakietu java.util.zip, wyjaśnimy to na przykładzie: import java.io.*; import java.util.zip.gzipinputstream; import java.util.zip.gzipoutputstream; public class KompresjaGZIP { public static void main(string[] args) throws IOException { String nazwapliku = "/tmp/kompresja.gzip"; BufferedOutputStream os = new BufferedOutputStream( new GZIPOutputStream( new FileOutputStream(nazwaPliku))); PrintWriter pw = new PrintWriter( new OutputStreamWriter(os)); pw.write("kompresja? Nic prostszego!"); pw.close();
14 Kompresja? Nic prostszego! // dekompresja BufferedInputStream is = new BufferedInputStream( new GZIPInputStream( new FileInputStream(nazwaPliku))); } } BufferedReader br = new BufferedReader( new InputStreamReader(is)); String s; while ( (s = br.readline())!= null ) System.out.println(s); br.close();
15 Nowe wejście / wyjście - java.nio.* W Javie 1.4 dodano "nowe" biblioteki wejścia/wyjścia (ang. new I/O) zebrane w pakietach java.nio.* głównym celem przy opracowywaniu nowych bibliotek było przyspieszenie ich działania sposób organizacji wejścia/wyjścia jest podobny do stosowanego w systemach operacyjnych posługiwanie się nowymi bibliotekami wymaga więcej pracy i uwagi, dlatego też zaleca się stosowanie starych bibliotek, jeśli szybkość działania nie ma dla nas bardzo istotna
16 Koncepcja serializacji przekształcenie obiektów w strumień bajtów, z zachowaniem aktualnego stanu obiektu
17 Koncepcja serializacji przekształcenie obiektów w strumień bajtów, z zachowaniem aktualnego stanu obiektu stosowana np. wtedy, gdy potrzebujemy utrwalenia danych (tzw. lekka trwałość)
18 Koncepcja serializacji przekształcenie obiektów w strumień bajtów, z zachowaniem aktualnego stanu obiektu stosowana np. wtedy, gdy potrzebujemy utrwalenia danych (tzw. lekka trwałość) wykorzystywana w programowaniu rozproszonym
19 Serializacja Jest to przekształcanie obiektów na postać binarną lub znakową
20 Serializacja Jest to przekształcanie obiektów na postać binarną lub znakową Proces odwrotny nazywamy deserializacją
21 Serializacja Aby obiekt był poddany automatycznej serializacji musi implementować interfejs java.io.serializable.
22 Serializacja Aby obiekt był poddany automatycznej serializacji musi implementować interfejs java.io.serializable. Nie posiada on żadnych metod i pełni jedynie rolę znacznika.
23 Serializacja Aby obiekt był poddany automatycznej serializacji musi implementować interfejs java.io.serializable. Nie posiada on żadnych metod i pełni jedynie rolę znacznika. Większość klas ze standardowych bibliotek Javy, m.in. wszystkie klasy opakowujące, kolekcje oraz napisy String implementuje ten interfejs.
24 Serializacja Przy serializacji obiektu, który agreguje inne obiekty, serializacji ulega cała hierarchia
25 Serializacja Przy serializacji obiektu, który agreguje inne obiekty, serializacji ulega cała hierarchia Jeżeli zmieni się klasa obiektu już zserializowanego, to deserializacja przy użyciu nowej implementacji jest niemożliwa
26 Serializacja użycie Aby zapisać lub odczytać klasę należy utworzyć obiekt ObjectOutputStream a następnie skorzystać z metod: void writeobject(object) Object readobject() w celu zapisania lub odczytania obiektu.
27 Serializacja przykład FileOutputStream out = new FileOutputStream("magazyn"); ObjectOutputStream s = new ObjectOutputStream(out); s.writeobject("hello World"); s.writeobject(new Date()); s.flush(); ZAPIS
28 Serializacja przykład FileOutputStream out = new FileOutputStream("magazyn"); ObjectOutputStream s = new ObjectOutputStream(out); s.writeobject("hello World"); s.writeobject(new Date()); s.flush(); ZAPIS FileInputStream in = new FileInputStream("magazyn"); ObjectInputStream s = new ObjectInputStream(in); String today = (String)s.readObject(); Date date = (Date)s.readObject(); ODCZYT
29 Słowo kluczowe transient Domyślnie serializowane są wszystkie niestatyczne składowe każdego obiektu, nawet jeżeli są oznaczone jako prywatne.
30 Słowo kluczowe transient Atrybuty, które mają być wyłączone z domyślnego mechanizmu serializacji należy oznaczyć przy pomocy modyfikatora transient. Deserializacja pozostawia na takich atrybutach wartość domyślną dla danego typu, np. dla typów obiektowych jest to null.
31 Można zupełnie zrezygnować z domyślnego mechanizmu serializacji i podać kod go zastępujący.
32 Można zupełnie zrezygnować z domyślnego mechanizmu serializacji i podać kod go zastępujący. Jeżeli klasa definiuje metody: private void writeobject(objectoutputstream oos) throws IOException; private void readobject(objectinputstream ois) throws IOException, ClassNotFoundException; będą one używane do serializacji i deserializacji jej obiektów.
33 Interfejs Externalizable Istnieje jeszcze jeden sposób zastąpienia domyślnego mechanizmu serializacji. Klasa może implementować interfejs java.io.externalizable i definiować wymagane przez niego metody void writeexternal(objectoutput out) throws IOException; void readexternal(objectinput in) throws IOException, ClassNotFoundException;
34 Serializacja do postaci XML Rolę ObjectOutputStream i ObjectInputStream pełnią klasy XMLEncoder i XMLDecoder z pakietu java.beans. W tym wypadku serializowane obiekty nie muszą implementować interfejsu Serializable. Tworzony jest standardowy plik tekstowy XML
Kurs programowania. Wykład 10. Wojciech Macyna. 05 maja 2016
Wykład 10 05 maja 2016 Biblioteka wejścia/wyjścia (Input/Output) import java.io.*; Umożliwia przechowywania danych na nośniku zewnętrznym Dane moga być wysyłane do plików, na drukarkę, do bufora pamięci,
Bardziej szczegółowoBiblioteki wejścia/wyjścia. Strumienie we/wy (I/O)
Biblioteki wejścia/wyjścia Strumienie we/wy (I/O) Pojęcie strumienia Strumień reprezentuje źródło lub odbiorcę danych (obiekt zdolny odbierać lub produkować dane). Strumień ukrywa szczegóły związane z
Bardziej szczegółowoPrzygotował: Jacek Sroka 1. Java SE. Strumienie
Przygotował: Jacek Sroka 1 Java SE Strumienie Przygotował: Jacek Sroka 2 Wielkość systemu we/wy Różne media konsola, pliki, połączenia sieciowe, łącza między procesami, itp. Różne sposoby sekwencyjnie,
Bardziej szczegółowoProgramowanie obiektowe
Przygotował: Jacek Sroka 1 Programowanie obiektowe Wykład 9 Serializacja Przygotował: Jacek Sroka 2 Przypomnienie Abstrakcja strumienia hierarchia binarna InputStream/OutputStream hierarchia znakowa Reader/Writer
Bardziej szczegółowoProgramowanie obiektowe
Programowanie obiektowe Wykład 11: Serializacja obiektów 5/19/2013 S.Deniziak:Programowanie obiektowe 1 Problem składowania/przesyłania danych Strumienie Tylko typy proste Konieczność ręcznego odtwarzania
Bardziej szczegółowoWykład 4: Wejście/wyjście: strumienie Java
PK1 2006_2018 Walery Susłow Programowanie komputerów Wykład 4: Wejście/wyjście: strumienie Java dr inż. Walery Susłow walery.suslow@tu.koszalin.pl Wejście/wyjście Podstawowy mechanizm wejścia-wyjścia znajduje
Bardziej szczegółowoJęzyk JAVA podstawy. Wykład 6, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna
Język JAVA podstawy Wykład 6, część 2 Jacek Rumiński 1 Język JAVA podstawy Plan wykładu: 1. Wprowadzenie do operacji wejścia/wyjścia: strumienie 2. Podstawowe klasy strumieni i InputStream/OutputStream
Bardziej szczegółowoJava niezbędnik programisty spotkanie nr 11. Importy statyczne, wejście/wyjście, wyrażenia regularne, serializacja
Java niezbędnik programisty spotkanie nr 11 Importy statyczne, wejście/wyjście, wyrażenia regularne, serializacja 1 Importowanie składowych statycznych Opracował Import static java.lang.system.out; //import
Bardziej szczegółowoPodstawy otwartych języków programowania Wyjątki i strumienie I/O
Podstawy otwartych języków programowania Wyjątki i strumienie I/O Wiktor Wandachowicz Wyjątki Podstawą filozofii Javy jest założenie, że: źle sformułowany kod nie zostanie wykonany Wyjątki są mechanizmem
Bardziej szczegółowoProgramowanie obiektowe
Przygotował: Jacek Sroka 1 Programowanie obiektowe Wykład 8 Strumienie Przygotował: Jacek Sroka 2 Przypomnienie Reagowanie na sytuacje wyjątkowe Wyjątki nadzorowane i nienadzorowane Obsługa wyjątku try
Bardziej szczegółowoSTRUMIENIE DANYCH, SERIALIZACJA OBIEKTÓW
STRUMIENIE DANYCH, SERIALIZACJA OBIEKTÓW 1. Procedura korzystania ze strumieni danych Aby utworzyć plik: 1) Należy utworzyć obiekt (np. typu FileOutputStream), powiązany ze plikiem danych binarnych (np.
Bardziej szczegółowoJAVA. Strumienie wejścia i wyjścia. Pliki - zapis i odczyt
JAVA Pliki - zapis i odczyt Opracował: Andrzej Nowak Bibliografia: JAVA Szkoła programowania, D. Trajkowska Ćwiczenia praktyczne JAVA. Wydanie III,M. Lis Strumienie wejścia i wyjścia Strumienie wejścia
Bardziej szczegółowo1 Klasa File. 2 Writer. Programowanie w j zyku Java - Adam Krechowicz. Klasa File zapewnia podstawowe operacje na plikach
Programowanie w j zyku Java - Adam Krechowicz 1 Klasa File Klasa File zapewnia podstawowe operacje na plikach import java.io.file; public class FileTest { File f = new File("/home/adam/abc.txt"); f.createnewfile();
Bardziej szczegółowoJava Zadanie 1. Aby poprawnie uruchomić aplikację desktopową, należy zaimplementować główną metodę zapewniającą punkt wejścia do programu.
Wstęp Java Zadanie Celem laboratorium jest zapoznanie się z podstawami platformy oraz języka Java. W ramach zadania należy przygotować aplikację zarządzania notatkami użytkownika obsługiwaną z konsoli.
Bardziej szczegółowoProgramowanie w języku Java WYKŁAD
Programowanie w języku Java WYKŁAD dr inż. Piotr Zabawa Certyfikowany Konsultant IBM/Rational e-mail: pzabawa@pk.edu.pl www: http://www.pk.edu.pl/~pzabawa 31.03.2014 WYKŁAD 6 Operacje we/wy Operacje we/wy
Bardziej szczegółowoProgramowane refleksyjne i serializacja
1 Programowane refleksyjne i serializacja 1. Programowanie refleksyjne: przegląd wybranych klas z pakietu java.lang i java.lang.reflect, dynamiczne obiekty proxy. 2. Serializacja interfejs Serializable,
Bardziej szczegółowoStrumienie, pliki. Sortowanie. Wyjątki.
Strumienie, pliki. Sortowanie. Wyjątki. Serializacja Zapisuje całą klasę Plik binarny Delimiter nieokreślony Nie da się podglądać Pliki tekstowe Zapisuje wybrane informacje Plik tekstowy Delimiter ustawiamy
Bardziej szczegółowoPlatformy Programistyczne Zagadnienia sieciowe i wątki
Platformy Programistyczne Zagadnienia sieciowe i wątki Agata Migalska 27/28 maja 2014 Komunikacja sieciowa 1 Komunikacja sieciowa 2 Wiele wątków 3 Serializacja Architektura typu klient-serwer Architektura
Bardziej szczegółowoKOMUNIKACJA MIĘDZYPROCESOWA O B S Ł U G A WEJŚCIA/WYJŚCIA
Wykorzystano fragmenty wykładów M. Piotrowskiego i M. Wójcika KOMUNIKACJA MIĘDZYPROCESOWA O B S Ł U G A WEJŚCIA/WYJŚCIA Waldemar Korłub Platformy Technologiczne KASK ETI Politechnika Gdańska Komunikacja
Bardziej szczegółowoProgramowanie Obiektowe (Java)
1. Kontenery w Javie 5 Wykład dziewiąty 1 import java.util.*; 2 3 class Element { 4 private int value; 5 6 public String tostring() { 7 return new Integer(value).toString(); 8 } 9 10 public Element(int
Bardziej szczegółowoRozdział 7 Strumienie, operacje wejścia-wyjścia
Rozdział 7 Strumienie, operacje wejścia-wyjścia 7.1 Strumienie 7.2 Standardowe obsługa wejścia-wyjścia - klasy InputStream oraz OutputStream 7.2.1 Obsługa wejścia klasa InputStream 7.2.2 Obsługa wejścia
Bardziej szczegółowoK O M U N I K A C J A MIĘDZYPROCESOWA O B S Ł U G A WEJŚCIA/WYJŚCIA
Wykorzystano fragmenty wykładów M. Piotrowskiego i M. Wójcika K O M U N I K A C J A MIĘDZYPROCESOWA O B S Ł U G A WEJŚCIA/WYJŚCIA Waldemar Korłub Platformy Technologiczne KASK ETI Politechnika Gdańska
Bardziej szczegółowoPodstawy i języki programowania
Podstawy i języki programowania Laboratorium 8 - wprowadzenie do obsługi plików tekstowych i wyjątków mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 11 grudnia 2017 1 / 34 mgr inż. Krzysztof
Bardziej szczegółowoSTRUMIENIE TEKSTOWE WEJŚCIOWE WPROWADZANIE DANYCH STRUMIENIE BAJTOWE, STRUMIENIE TEKSTOWE
STRUMIENIE TEKSTOWE WEJŚCIOWE WPROWADZANIE DANYCH STRUMIENIE BAJTOWE, STRUMIENIE TEKSTOWE 1) Strumienie tekstowe wejściowe wprowadzanie danych Procedura korzystania ze strumieni tekstowych wejściowych
Bardziej szczegółowoJęzyki i Techniki Programowania II. Wykład 6. Wejście/Wyjście
Języki i Techniki Programowania II Wykład 6 Wejście/Wyjście Podstawowy podział strumieni Strumienie: Bajtowe: (Stream) Wejściowe (InputStream, FilterInputStream...) Wyjściowe (OutputStream, FilterOutputStream...)
Bardziej szczegółowodr Krzysztof Podlaski
dr Krzysztof Podlaski Wydział Fizyki i Informatyki Stosowanej 19.11.2010 Łódź Wstęp do Java, wykład 3 1 Biblioteki standardowe Obszerny zestaw Klas i Interfejsów Obsługa Strumieni We-Wy Dysków Sieci java.io,
Bardziej szczegółowoWstęp do Java. Operacje Wejścia-Wyjścia Programowanie Wielowątkowe. dr Krzysztof Podlaski. Wydział Fizyki i Informatyki Stosowanej
Wstęp do Java Operacje Wejścia-Wyjścia Programowanie Wielowątkowe dr Krzysztof Podlaski Wydział Fizyki i Informatyki Stosowanej 19.03.2015 Łódź 1 Obsługa procesów We-Wy Biblioteki standardowe Obszerny
Bardziej szczegółowoWykład 10: Wejście i Wyjście
Wykład 10: Wejście i Wyjście Pakiet java.io. Wejście/Wyjście Program realizuje wejście/wyjście przez użycie potoku. Ten sam sposób obsługi różnych urządzeń: konsola klawiatura plik na dysku gniazdko sieciowe,
Bardziej szczegółowoInynieria oprogramowania Lecture XXX. Java TM cz IV: IO. Bartosz Walter
Inynieria oprogramowania Lecture XXX Java TM cz IV: IO Bartosz Walter Plan Klasa java.io.file Strumienie tekstowe Strumienie standardowe Properties Wprowadzenie pakiet java.io.*;
Bardziej szczegółowoJAVA I SIECI. MATERIAŁY: http://docs.oracle.com/javase/tutorial/networking/index.html
JAVA I SIECI ZAGADNIENIA: URL, Interfejs gniazd, transmisja SSL, protokół JNLP. MATERIAŁY: http://docs.oracle.com/javase/tutorial/networking/index.html http://th-www.if.uj.edu.pl/zfs/ciesla/ JĘZYK JAVA,
Bardziej szczegółowoStrumienie, pliki. Sortowanie. Wyjątki.
Strumienie, pliki. Sortowanie. Wyjątki. Operacje I/O w Javie Serializacja Zapisuje całą klasę Plik binarny Delimiter nieokreślony Nie da się podglądać Pliki tekstowe Zapisuje wybrane informacje Plik tekstowy
Bardziej szczegółowoJęzyki i metody programowania Java INF302W Wykład 4
Języki i metody programowania Java INF302W Wykład 4 Autor Dr inż. Zofia Kruczkiewicz 1 Struktura wykładu 1. Strumienie binarne i tekstowe niebuforowane i buforowane, obsługa plików tekstowych, wprowadzanie
Bardziej szczegółowoAplikacje RMI. Budowa aplikacji rozproszonych. Część 2.
Aplikacje RMI Część 2 Budowa aplikacji rozproszonych http://java.sun.com/j2se/1.5.0/docs/guide/rmi/socketfactory/index.html I. Implementacja gniazd dziedziczących po Socket i ServerSocket oraz produkcji
Bardziej szczegółowoWSNHiD, Programowanie 2, Lab. 3. Trwałość danych
WSNHiD, Programowanie 2, Lab. 3 Trwałość danych Wyjątki Nietypowe sytuacje, które podczas normalnego wykonywania programu nie powinny się wydarzyć obsługiwane są w języku Java za pomocą wyjątków. Przyjrzyjmy
Bardziej szczegółowoWykład 6 Dziedziczenie cd., pliki
Wykład 6 Dziedziczenie cd., pliki Autor: Zofia Kruczkiewicz 1. Dziedziczenie cd. 2. Pliki - serializacja Zagadnienia 1. Dziedziczenie aplikacja Kalkultory_2 typu Windows Forms prezentująca dziedziczenie
Bardziej szczegółowoWykład 2: Podstawy Języka
Wykład 2: Podstawy Języka 1.wprowadzenie 2.podstawy języka 3.sterowanie 4.inicjacja i sprzątanie 5.kontrola dostępu 6.dziedziczenie 7.polimorfizm 8.obsługa błędów 9.kolekcje obiektów 10.wejście i wyjście
Bardziej szczegółowoWzorce projektowe. dr inż. Marcin Pietroo
Wzorce projektowe dr inż. Marcin Pietroo Adapter - strukturalny wzorzec projektowy, którego celem jest umożliwienie współpracy dwóm klasom o niekompatybilnych interfejsach - adapter przekształca interfejs
Bardziej szczegółowoJava. Programowanie Obiektowe Mateusz Cicheński
Java Programowanie Obiektowe Mateusz Cicheński Wielowątkowość Proces a wątek? Thread vs Runnable sleep(), interrupt(), join() Problemy wielowątkowości Obiekty niemodyfikowalne (immutable) Serializacja
Bardziej szczegółowoMATERIAŁY POMOCNICZE DO ĆWICZENIA 3 Klasy i obiekty; atrybuty i metody
MATERIAŁY POMOCNICZE DO ĆWICZENIA 3 Klasy i obiekty; atrybuty i metody Java jest językiem obiektowym. Wartości typów innych niż proste są obiektami określonych klas. Obiekty stanowią instancje klas, których
Bardziej szczegółowoObszar statyczny dane dostępne w dowolnym momencie podczas pracy programu (wprowadzone słowem kluczowym static),
Tworzenie obiektów Dostęp do obiektów jest realizowany przez referencje. Obiekty w języku Java są tworzone poprzez użycie słowa kluczowego new. String lan = new String( Lancuch ); Obszary pamięci w których
Bardziej szczegółowoProgramowanie obiektowe
Programowanie obiektowe Wykład 5 Marcin Młotkowski 23 marca 2017 Plan wykładu 1 2 3 4 5 Marcin Młotkowski Programowanie obiektowe 2 / 50 Historia Początkowe założenia Projekt OAK Sterowanie urządzeniami
Bardziej szczegółowoKomunikacja z użyciem gniazd aplikacje klient-serwer
Programowanie obiektowe Komunikacja z użyciem gniazd aplikacje klient-serwer Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski @ pwr.wroc.pl Architektura
Bardziej szczegółowoJęzyki i metody programowania Java INF302W Wykład 3 (część 1)
Języki i metody programowania Java INF302W Wykład 3 (część 1) Autor Dr inż. Zofia Kruczkiewicz Autor: Zofia Kruczkiewicz, Języki i metody programowania Java, wykład 3, część 1 1 STRUKTURA WYKŁADU 1. Wyjątki,
Bardziej szczegółowoProgramy typu klient serwer. Programowanie w środowisku rozproszonym. Wykład 5.
Programy typu klient serwer. Programowanie w środowisku rozproszonym. Wykład 5. Schemat Internetu R R R R R R R 2 Model Internetu 3 Protokoły komunikacyjne stosowane w sieci Internet Protokoły warstwy
Bardziej szczegółowoProgramowanie obiektowe
Programowanie obiektowe Wykład 10: Strumienie we/wy 5/13/2013 S.Deniziak:Programowanie obiektowe 1 Zarządzanie systemem plików klasa File (pakiet java.io) np. File path=new File(. ); Metody: list(), getname(),
Bardziej szczegółowoJęzyk JAVA podstawy. wykład 2, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna
Język JAVA podstawy wykład 2, część 1 1 Język JAVA podstawy Plan wykładu: 1. Rodzaje programów w Javie 2. Tworzenie aplikacji 3. Tworzenie apletów 4. Obsługa archiwów 5. Wyjątki 6. Klasa w klasie! 2 Język
Bardziej szczegółowoJęzyki i metody programowania Java. Wykład 2 (część 2)
Języki i metody programowania Java INF302W Wykład 2 (część 2) Autor Dr inż. Zofia Kruczkiewicz 1 Struktura wykładu 1. Identyfikacja danych reprezentowanych przez klasy podczas opracowania koncepcji prostego
Bardziej szczegółowoDokumentacja do API Javy.
Dokumentacja do API Javy http://java.sun.com/j2se/1.5.0/docs/api/ Klasy i obiekty Klasa jest to struktura zawierająca dane (pola), oraz funkcje operujące na tych danych (metody). Klasa jest rodzajem szablonu
Bardziej szczegółowoBezpieczne uruchamianie apletów wg
Bezpieczne uruchamianie apletów wg http://java.sun.com/docs/books/tutorial/security1.2/ Zabezpieczenia przed uruchamianiem apletów na pisanych przez nieznanych autorów 1) ograniczenie możliwości odczytywania,
Bardziej szczegółowoMarcin Luckner Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych
Marcin Luckner Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych mluckner@mini.pw.edu.pl http://www.mini.pw.edu.pl/~lucknerm Programy w Javie składają się z pakietów Pakiety zawierają definicje
Bardziej szczegółowoInformatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki
Informatyka I Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2019 1 Plan wykładu
Bardziej szczegółowoPodstawy obiektowości
Podstawy obiektowości Zad. Zamówienie 1. Napisać program do obsługi zamówień. Program powinien składać się z dwóch klas: Zamowienie oraz Pozycja, przy czym każde zamówienie zawierać może jedną lub więcej
Bardziej szczegółowoProgramowanie Obiektowe Java
Programowanie Obiektowe Java Małgorzata Janik Zakład Fizyki Jądrowej malgorzata.janik@pw.edu.pl http://java.fizyka.pw.edu.pl/ Operacje wejścia-wyjścia strumienie Pakiety IO Java dostarcza dwóch podstawowych
Bardziej szczegółowoLaboratorium 03: Podstawowe konstrukcje w języku Java [2h]
1. Typy. Java jest językiem programowania z silnym systemem kontroli typów. To oznacza, że każda zmienna, atrybut czy parametr ma zadeklarowany typ. Kompilator wylicza typy wszystkich wyrażeń w programie
Bardziej szczegółowoProgramowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni. Wykład 6. Karol Tarnowski A-1 p.
Programowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni Wykład 6 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Wskaźnik do pliku Dostęp do pliku: zapis, odczyt,
Bardziej szczegółowoKurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016
Wykład 2 17 marca 2016 Dziedziczenie Klasy bazowe i potomne Dziedziczenie jest łatwym sposobem rozwijania oprogramowania. Majac klasę bazowa możemy ja uszczegółowić (dodać nowe pola i metody) nie przepisujac
Bardziej szczegółowoJava: Graficzne interfejsy użytkownika
Java: Graficzne interfejsy użytkownika 1. Pakiet wejścia / wyjścia Część pierwsza dotyczy niektórych klas pakietu java.io. Java definiuje wejścia i wyjścia (I / O) pod względem klas znanych jako strumienie.
Bardziej szczegółowoWykład 8: Obsługa Wyjątków
Wykład 8: Obsługa Wyjątków Wyjątki Wyjątek to sytuacja nienormalna, która pojawia się w trakcie wykonania programu. W językach bez obsługi wyjątków, błędy są wykrywane i obsługiwane ręcznie, zwykle przez
Bardziej szczegółowoProgramowanie w Internecie. Java
Programowanie w Internecie Java Autor: dr inż. Zofia Kruczkiewicz Literatura: L. Lemay, R. Cadenhead P. Naughton Krzysztof Barteczko Boone Barry Java 2 dla każdego Podręcznik Języka Programowania Java
Bardziej szczegółowoWprowadzanie danych z klawiatury. Wyjątki związane z wprowadzaniem danych, przekroczeniem rozmiaru tablicy, dzieleniem przez zero itd.
-1-1. Wyjątki 2. Przykładowe zadania Wyjątki Wyjątek w Java jest obiektem, który opisuje sytuację błędną powstałą w kodzie. Zaistnienie sytuacji błędnej w metodzie powoduje utworzenie obiektu reprezentującego
Bardziej szczegółowoI/O (STRUMIENIE, PLIKI,...)
I/O (STRUMIENIE, PLIKI,...) ZAGADNIENIA: pakiet java.io, strumienie bajtowe, strumienie znakowe, strumienie binarne, serializacja i kompresja narzędzie jar. MATERIAŁY: http://docs.oracle.com/javase/tutorial/essential/io/
Bardziej szczegółowoProgramowanie obiektowe
Programowanie obiektowe IV. Interfejsy i klasy wewnętrzne Małgorzata Prolejko OBI JA16Z03 Plan Właściwości interfejsów. Interfejsy a klasy abstrakcyjne. Klonowanie obiektów. Klasy wewnętrzne. Dostęp do
Bardziej szczegółowoPrototype (prototyp) Cel: Przykład: Określenie rodzaju tworzonych obiektów poprzez wskazanie ich prototypu. Nowe instancje tworzymy kopiując prototyp.
1/14 Prototype (prototyp) Cel: Określenie rodzaju tworzonych obiektów poprzez wskazanie ich prototypu. Nowe instancje tworzymy kopiując prototyp. Przykład: Edytor 3D klient tworzy obiekty różnych kształtów
Bardziej szczegółowoJAVA W SUPER EXPRESOWEJ PIGUŁCE
JAVA W SUPER EXPRESOWEJ PIGUŁCE Obiekt Obiekty programowe to zbiór własności i zachowań (zmiennych i metod). Podobnie jak w świecie rzeczywistym obiekty posiadają swój stan i zachowanie. Komunikat Wszystkie
Bardziej szczegółowoJava. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak
Java język programowania obiektowego Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak 1 Język Java Język Java powstał w roku 1995 w firmie SUN Microsystems Java jest językiem: wysokiego
Bardziej szczegółowoProgramowanie współbieżne i rozproszone
Programowanie współbieżne i rozproszone WYKŁAD 6 dr inż. Komunikowanie się procesów Z użyciem pamięci współdzielonej. wykorzystywane przede wszystkim w programowaniu wielowątkowym. Za pomocą przesyłania
Bardziej szczegółowoJava niezbędnik programisty spotkanie nr 3. Modyfikatory, jednostki kompilacji, tworzenie/inicjalizacja, odśmiecanie/ finalizacja...
Java niezbędnik programisty spotkanie nr 3 Modyfikatory, jednostki kompilacji, tworzenie/inicjalizacja, odśmiecanie/ finalizacja... 1 Definicja klasy [modyfikator] class nazwa_klasy { [modyfikator] nazwa_typu
Bardziej szczegółowoProgramowanie rozproszone w języku Java
Wstęp Gniazda RMI Podsumowanie Programowanie rozproszone w języku Java Wojciech Rząsa wrzasa@prz-rzeszow.pl Katedra Informatyki i Automatyki, Politechnika Rzeszowska 25 maja 2015 Wojciech Rząsa, KIiA PRz
Bardziej szczegółowoWstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 12. Karol Tarnowski A-1 p.
Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy Wykład 12 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji (1) Obsługa łańcuchów znakowych getchar(), putchar()
Bardziej szczegółowoJava podstawy jęyka. Wykład 2. Klasy abstrakcyjne, Interfejsy, Klasy wewnętrzne, Anonimowe klasy wewnętrzne.
Java podstawy jęyka Wykład 2 Klasy abstrakcyjne, Interfejsy, Klasy wewnętrzne, Anonimowe klasy wewnętrzne. Wyjątki: obsługa błędów Wydział Fizyki i Informatyki Stosowanej, Uniwersytetu Łódzkiego 12.03.2015
Bardziej szczegółowoWykład II. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej
Wykład II - semestr II Kierunek Informatyka Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2015 c Copyright 2015 Janusz Słupik Operacje dyskowe - zapis do pliku #include #include
Bardziej szczegółowoZaawansowane techniki programowania C#
Wykład 2 Piotr Błaszyński Wydział Informatyki Zachodniopomorskiego Uniwersytetu Technologicznego 18 października 2017 służą do informowania o niepowodzeniu pewnego elementu programu, dawniej używano tzw.
Bardziej szczegółowoWykład 2. Strumienie tekstowe (wprowadzanie danych z klawiatury) i bajtowe, otwieranie strumieni poprzez sieć - obiekty URL
Wykład 2 Strumienie tekstowe (wprowadzanie danych z klawiatury) i bajtowe, otwieranie strumieni poprzez sieć - obiekty URL 1. Procedura korzystania ze strumieni tekstowych wejściowych powiązanych ze standardowym
Bardziej szczegółowoProgramowanie obiektowe
Programowanie obiektowe Wykład 2: Wstęp do języka Java 3/4/2013 S.Deniziak: Programowanie obiektowe - Java 1 Cechy języka Java Wszystko jest obiektem Nie ma zmiennych globalnych Nie ma funkcji globalnych
Bardziej szczegółowosieć 4) Mechanizm RMI jest zazwyczaj wykorzystywany w rozwiązaniach typu klient-serwer.
RMI (Remote Method Invocation) zdalne wywołanie metod Część 1 1) RMI jest mechanizmem, który pozwala danej aplikacji: wywoływać metody obiektów zdalnych oraz uzyskać dostęp do obiektów zdalnych (np. w
Bardziej szczegółowoPodstawy programowania obiektowego
Podstawy programowania obiektowego Technologie internetowe Wykład 5 Program wykładu Podejście obiektowe kontra strukturalne do tworzenie programu Pojęcie klasy i obiektu Składowe klasy: pola i metody Tworzenie
Bardziej szczegółowoStrumienie tekstowe (wprowadzanie danych z klawiatury) i bajtowe, otwieranie strumieni przez sieć - obiekty URL
Strumienie tekstowe (wprowadzanie danych z klawiatury) i bajtowe, otwieranie strumieni przez sieć - obiekty URL Autor: dr inż. Zofia Kruczkiewicz, Programowanie aplikacji internetowych 1 1. Strumienie
Bardziej szczegółowoC# 6.0 : kompletny przewodnik dla praktyków / Mark Michaelis, Eric Lippert. Gliwice, cop Spis treści
C# 6.0 : kompletny przewodnik dla praktyków / Mark Michaelis, Eric Lippert. Gliwice, cop. 2016 Spis treści Spis rysunków 11 Spis tabel 13 Przedmowa 15 Wprowadzenie 17 Podziękowania 27 O autorach 29 1 Wprowadzenie
Bardziej szczegółowoProgramowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz
Programowanie obiektowe Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Java P. L. Lemay, Naughton R. Cadenhead Java Podręcznik 2 dla kaŝdego Języka Programowania Java Linki Krzysztof Boone oprogramowania
Bardziej szczegółowoJAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji.
JAVA Java jest wszechstronnym językiem programowania, zorientowanym obiektowo, dostarczającym możliwość uruchamiania apletów oraz samodzielnych aplikacji. Java nie jest typowym kompilatorem. Źródłowy kod
Bardziej szczegółowo1. CZYM JEST SERIALIZACJA
SERIALIZACJA O CZYM POWIEMY? 1. Czym jest serializacja? 2. Jak przeprowadzić proces serializacji? 3. Jak przeprowadzić proces deserializacji? 4. Serializacja własnych klas. 5. Dobre praktyki. 6. SoapFormatter.
Bardziej szczegółowoKlasy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 13
Klasy Klasa to grupa obiektów, które mają wspólne właściwości, a obiekt jest instancją klasy. Klasa w języku Java może zawierać: pola - reprezentują stan obiektu (odniesienie do pola z kropką), methods
Bardziej szczegółowoProgramowanie obiektowe zastosowanie języka Java SE
Programowanie obiektowe zastosowanie języka Java SE Wstęp do programowania obiektowego w Javie Autor: dr inŝ. 1 Java? Java język programowania obiektowo zorientowany wysokiego poziomu platforma Javy z
Bardziej szczegółowoJava w 21 dni / Rogers Cadenhead. Gliwice, cop Spis treści. O autorze 11. Wprowadzenie 13 TYDZIEŃ I JĘZYK JAVA
Java w 21 dni / Rogers Cadenhead. Gliwice, cop. 2016 Spis treści O autorze 11 Wprowadzenie 13 TYDZIEŃ I JĘZYK JAVA Dzień 1. Rozpoczynamy przygodę z Javą 21 Język Java 21 Programowanie obiektowe 24 Obiekty
Bardziej szczegółowoProgramowanie Obiektowe Java
Programowanie Obiektowe Java Małgorzata Janik Zakład Fizyki Jądrowej malgorzata.janik@pw.edu.pl http://java.fizyka.pw.edu.pl/ Wykład Poniedziałek 16:15 18:00 2 h, pierwsza połowa semestru 7 wykładów :
Bardziej szczegółowopublic - może być używana w kodzie poza klasą, jedna klasa ModyfikatorKlasy może być kombinacją wyrażeń:
Klasy Metody [ModyfikatorMetody] TypZwrotny Nazwa (Typ arg1, ) { // implementacja metody ModyfikatorMetody może być kombinacją wyrażeń: modyfikator widzialności public dostępna dla metod spoza klasy protected
Bardziej szczegółowoZdalne wywołanie metod - koncepcja. Oprogramowanie systemów równoległych i rozproszonych Wykład 7. Rodzaje obiektów. Odniesienie do obiektu
Zdalne wywołanie metod - koncepcja Oprogramowanie systemów równoległych i rozproszonych Wykład 7 RMI (Remote Method Invocation) - obiektowe RPC, dostarcza klientowi interfejs do obiektu, implementacja
Bardziej szczegółowoFunkcje zawarte w bibliotece < io.h >
PLIKOWE OPERACJE WEJŚCIA - WYJŚCIA Język C/C++ nie ma wbudowanych żadnych instrukcji umożliwiających wykonywanie operacji wejścia-wyjścia! Służą do tego funkcje biblioteczne. Funkcje zawarte w bibliotece
Bardziej szczegółowoDecorator (dekorator)
1/10 Decorator (dekorator) Cel: Dołącza dynamicznie nową funkcjonalność do obiektu elastyczna alternatywa dziedziczenia. Przykład: interface iplik { void zapisz(string tekst); String odczytaj(); class
Bardziej szczegółowoMATERIAŁY POMOCNICZE DO ĆWICZENIA 1 Aplikacja w języku Java. Pakiety i biblioteki Javy. Kompilacja i wykonanie programu Javy
MATERIAŁY POMOCNICZE DO ĆWICZENIA 1 Aplikacja w języku Java Aplikacja to program zdolny do samodzielnego działania w systemie wyposażonym w interpreter Javy Aplikacje mogą działać w trybie tekstowym (aplikacje
Bardziej szczegółowoPROE wykład 3 klasa string, przeciążanie funkcji, operatory. dr inż. Jacek Naruniec
PROE wykład 3 klasa string, przeciążanie funkcji, operatory dr inż. Jacek Naruniec Przypomnienie z ostatnich wykładów Konstruktory/destruktory i kolejność ich wywołania w złożonej klasie. Referencja Obiekty
Bardziej szczegółowoOprogramowanie systemów równoległych i rozproszonych Wykład 7
Wykład 7 p. 1/2 Oprogramowanie systemów równoległych i rozproszonych Wykład 7 Dr inż. Tomasz Olas olas@icis.pcz.pl Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Zdalne wywołanie
Bardziej szczegółowoWykład 4. Tablice. Pliki
Informatyka I Wykład 4. Tablice. Pliki Dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2017 Tablice Tablica uporządkowany zbiór elementów określonego typu Każdy element tablicy posiada
Bardziej szczegółowoInformatyka I. Dziedziczenie. Nadpisanie metod. Klasy abstrakcyjne. Wskaźnik this. Metody i pola statyczne. dr inż. Andrzej Czerepicki
Informatyka I Dziedziczenie. Nadpisanie metod. Klasy abstrakcyjne. Wskaźnik this. Metody i pola statyczne. dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2017 Dziedziczenie klas
Bardziej szczegółowoJęzyk JAVA podstawy. Wykład 6, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna
Język JAVA podstawy Wykład 6, część 1 Jacek Rumiński 1 Język JAVA podstawy Plan wykładu: 1. Wprowadzenie do operacji wejścia/wyjścia: strumienie 2. Podstawowe klasy strumieni i InputStream/OutputStream
Bardziej szczegółowoAplikacje w środowisku Java
Aplikacje w środowisku Java Materiały do zajęć laboratoryjnych Klasy i obiekty - wprowadzenie mgr inż. Kamil Zieliński Katolicki Uniwersytet Lubelski Jana Pawła II 2018/2019 Klasa zbiór pól i metod Obiekt
Bardziej szczegółowoMultimedia JAVA. Historia
Multimedia JAVA mgr inż. Piotr Odya piotrod@sound.eti.pg.gda.pl Historia 1990 rozpoczęcie prac nad nowym systemem operacyjnym w firmie SUN, do jego tworzenia postanowiono wykorzystać nowy język programowania
Bardziej szczegółowoWykład 8: klasy cz. 4
Programowanie obiektowe Wykład 8: klasy cz. 4 Dynamiczne tworzenie obiektów klas Składniki statyczne klas Konstruktor i destruktory c.d. 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD
Bardziej szczegółowoInterfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej
Programowanie obiektowe Interfejsy Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Interfejsy Autor: Paweł Rogaliński Instytut Informatyki,
Bardziej szczegółowoDefiniowanie własnych klas
Programowanie obiektowe Definiowanie własnych klas Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski @ pwr.wroc.pl Definiowanie własnych klas Autor:
Bardziej szczegółowo