Podstawy otwartych języków programowania Wyjątki i strumienie I/O

Wielkość: px
Rozpocząć pokaz od strony:

Download "Podstawy otwartych języków programowania Wyjątki i strumienie I/O"

Transkrypt

1 Podstawy otwartych języków programowania Wyjątki i strumienie I/O Wiktor Wandachowicz

2 Wyjątki Podstawą filozofii Javy jest założenie, że: źle sformułowany kod nie zostanie wykonany Wyjątki są mechanizmem zabezpieczającym program podczas jego działania dynamicznie (w odróżnieniu od błędów pojawiających się podczas kompilacji przy statycznym sprawdzaniu poprawności programu). Stanowią element sięgający podstaw języka i szeroko stosowany we wszelkich bibliotekach Java. Lepiej jest przerwać wykonywanie programu, niż dopuścić do nieoczekiwanych efektów wynikających z błędu.

3 Typowa obsługa wyjątków Sytuacja błędna powoduje utworzenie nowego obiektu wyjątku i rzucenie go. Kod, który wyrzuca wyjątki można spróbować wykonać, a pojawiające się wyjątki można łapać. Złapany wyjątek można obsłużyć albo rzucić ponownie. Jeśli kod w metodzie rzuca wyjątek (nie jest on obsłużony), musi być to wyspecyfikowane w deklaracji metody. Można także wskazać finalne operacje wykonywane zawsze, niezależnie od tego czy wyjątek wystąpił, czy nie. Wyjątki pochodzą od klasy java.lang.throwable, jej główne podklasy to: java.lang.exception (najczęściej używana), java.lang.runtimeexception oraz java.lang.error.

4 Kategorie wyjątków Exception do typowej obsługi wyjątków. Tworząc własne klasy wyjątków najczęściej dziedziczy się je właśnie z tej klasy. RuntimeException oraz pochodne określają wyjątki, które mogą pojawić się podczas normalnego działania maszyny wirtualnej. Nie trzeba deklarować ich w definicjach metod, mogą pojawić się w każdej metodzie. Przykłady: NullPointerException, IndexOutOfBoundsException. Error oraz pochodne określają poważne problemy, sytuacje, które nie powinny zdarzyć się przy normalnym wykonaniu programu. Nie trzeba deklarować ich w definicjach metod. Przykłady: VirtualMachineError, AssertionError.

5 Łapanie wyjątków Odbywa się z użyciem bloków try i catch. Pierwszy blok (try spróbuj) obejmuje kod, który może spowodować wyjątek. Drugi blok (catch złap) określa jakie wyjątki chce obsłużyć i zawiera kod z obsługą błędów. Jeśli wyjątek został złapany, można m.in. wyświetlić informację o pochodzeniu błędu (jest to najczęściej używane): ex.printstacktrace() odczytać komunikat błędu: ex.getmessage() odczytać źródło błędu: ex.getcause()

6 Łapanie wyjątków przykład (1) import java.io.*; public class Imie { static void odczytajimie() { BufferedReader in = new BufferedReader( new InputStreamReader(System.in)); try { System.out.print("Podaj imie: "); blok try String imie = in.readline(); // może być wyjątek System.out.print("Witaj " + imie + "!"); catch (IOException e) { e.printstacktrace(); lokalna obsługa wyjątku public static void main(string[] args) { odczytajimie();

7 Łapanie wyjątków przykład (2) import java.io.*; specyfikacja wyjątku public class Imie { static void odczytajimie() throws IOException { BufferedReader in = new BufferedReader( new InputStreamReader(System.in)); System.out.print("Podaj imie: "); String imie = in.readline(); // tu może być wyjątek System.out.print("Witaj " + imie + "!"); public static void main(string[] args) { try { blok try odczytajimie(); catch (IOException e) { e.printstacktrace(); obsługa wyjątku

8 Rzucanie wyjątków Aby zasygnalizować błąd, należy utworzyć obiekt wyjątku (podając przyczynę błędu). Następnie należy rzucić wyjątek, z użyciem słowa kluczowego throw: long suma = 0; int iloscnieujemnych = 0; void dodajnieujemna(int liczba) throws IllegalArgumentException { if (liczba > 0) { suma += liczba; iloscnieujemnych++; else { throw new IllegalArgumentException("liczba <= 0");

9 Tworzenie własnych klas wyjątków Nowa klasa wyjątku powinna dziedziczyć z Exception. Może zawierać dodatkowe pola i metody. Powinna deklarować przynajmniej dwa konstruktory: bezparametrowy z jednym argumentem typu String public class ProgramException extends Exception { public ProgramException() { super(); public ProgramException(String message) { super(message);

10 Własne klasy wyjątków oraz wiązanie wyjątków Żeby móc używać mechanizmu wiązania wyjątków, wskazane jest dodanie jeszcze dwóch konstruktorów: z jednym argumentem typu Throwable z argumentami typu String oraz typu Throwable public class ProgramException extends Exception { public ProgramException() { super(); public ProgramException(String message) { super(message); public ProgramException(Throwable cause) { super(cause); public ProgramException(String message, Throwable cause) { super(message, cause);

11 Wiązanie wyjątków Wiązanie wyjątków (exception chaining) pozwala dowiedzieć się jaka była oryginalna przyczyna powstania wyjątku w przypadku, gdy wyjątek jest rzucany ponownie: void openfile() throws ProgramException { FileReader file = null; try { String filename = selectfile(); file = new FileReader(fileName); parsecontents(file); catch (IOException ex) { throw new ProgramException("Błąd odczytu pliku: " + ex.getmessage(), ex); catch (NumberFormatException ex) { throw new ProgramException("Błędny format pliku: " + ex.getmessage(), ex); finally { if (file!= null) try { file.close(); /* mamy wyjątek - zrób porządki i zamknij plik */ catch (IOException ex) { /* pominięcie ew. błędów */

12 Efekt wiązania wyjątków public class Program { public static void main(string[] args) { try { openfile(); catch (ProgramException ex) { ex.printstacktrace(); > java Program ProgramException: Błąd odczytu pliku: test.txt (No such file or directory) at Program.openFile(Program.java:34) at Program.main(Program.java:15) Caused by: java.io.filenotfoundexception: test.txt (No such file or directory) at java.io.fileinputstream.open(native Method) at java.io.fileinputstream.<init>(fileinputstream.java:106) at java.io.fileinputstream.<init>(fileinputstream.java:66) at java.io.filereader.<init>(filereader.java:41) at Program.openFile(Program.java:30)... 1 more

13 Dziedziczenie klas wyjątków Kolejność zapisu sekcji catch ma znaczenie, ponieważ przy wystąpieniu wyjątku są one przeglądane w kolejności występowania. Pierwsze dopasowanie do klasy wyjątku pomija pozostałe sekcje catch. Pojawiają się błędy kompilacji, gdy obsługa wyjątków klas bardziej ogólnych poprzedza obsługę wyjątków klas pochodnych. Kod zawarty w sekcji finally wykonywany jest zawsze, niezależnie od tego czy wystąpił wyjątek, czy nie. Służy to do czynności porządkowych, zwalniania zasobów, itp.

14 Podsumowanie Aby stworzyć niezawodny system, każdy jego komponent musi być niezawodny Obsługa wyjątków jest kluczowym sposobem zwiększenia niezawodności programów. Drugim sposobem jest używanie testów jednostkowych i testów modułowych (unit testing, module testing). Java wymusza wiele aspektów związanych z wyjątkami, co gwarantuje, że będą one spójnie używane zarówno przez twórców jak i użytkowników bibliotek.

15 Podstawy otwartych języków programowania Strumienie wejścia/wyjścia Wiktor Wandachowicz

16 Strumienie danych Strumień jest abstrakcyjną reprezentacją dowolnego źródła lub ujścia danych Na podstawie dwóch logicznych operacji wyróżniamy dwa typy strumieni: strumienie wejściowe (odczyt danych) strumienie wyjściowe (zapis danych) Strumień jest zawsze stowarzyszony z jakimś źródłem danych (odczyt) lub ujściem (zapis). Wyróżniamy także strumienie bajtowe i znakowe. W Javie obsługę strumieni zapewnia pakiet java.io

17 Strumienie wejściowe i wyjściowe strumień wejściowy źródło danych informacja odczyt Program strumień wyjściowy Program zapis informacja ujście danych

18 Algorytmy odczytu i zapisu Odczyt otwórz strumień jeśli jest jeszcze informacja [określane przez źródło] odczytaj informację zamknij strumień Zapis otwórz strumień jeśli jest jeszcze informacja [określane przez program] zapisz informację zamknij strumień

19 Hierarchia strumieni Strumienie bajtowe Strumienie znakowe Klasy strumieni są w pakiecie java.io Przy nieudanych operacjach pojawiają się wyjątki klasy java.io.ioexception Strumienie bajtowe i znakowe zapewniają praktycznie taką samą funkcjonalność (API), różnią się głównie obsługiwanymi typami danych.

20 Strumienie bajtowe Dwa najbardziej ogólne strumienie bajtowe to: InputStream do odczytu, oraz OutputStream do zapisu ciągów bajtów. void close() InputStream abstract int read() int read(byte[] b) int read( byte[] b, int off, int len) long skip(long n) abstract void write(int b) void write(byte[] b) void write( byte[] b, int off, int len) void flush() void close() OutputStream

21 Strumienie znakowe Podstawowymi strumieniami znakowymi są: Reader do odczytu, oraz Writer do zapisu ciągów znaków. int read() void close() Reader int read(char[] cbuf) abstract int read(char[] cbuf, int off, int len) long skip(long n) void write(int c) void write(char[] cbuf) abstract void write(char[] cbuf, int off, int len) void flush() void close() Writer

22 Rozszerzanie funkcjonalności Zwiększenie funkcjonalności odbywa się przez użycie wyspecjalizowanych strumieni. Korzystają one z innych strumieni, aby wykonywać swoją pracę. Robi się to przez opakowanie jednego typu strumienia w inny (aby to zadziałało musi istnieć w wybranej klasie strumienia odpowiedni konstruktor). InputStream int read(byte[] b) InputStreamReader int read(char[] cbuf) BufferedReader String readline()

23 Odczyt standardowego wejścia (Java ) import java.io.*; public class PowielajLinie { public static void main(string[] args) throws IOException { System.out.println("Wpisuj linie tekstu. " + "Koniec gdy pusta linia."); BufferedReader in = new BufferedReader( new InputStreamReader(System.in)); String linia; do { linia = in.readline(); System.out.println(linia); while (linia.length() > 0); InputStream

24 Odczyt standardowego wejścia (Java 5, 6) import java.io.*; import java.util.scanner; public class PowielajLinie2 { public static void main(string[] args) { System.out.println("Wpisuj linie tekstu. " + "Koniec gdy pusta linia."); Scanner sc = new Scanner(System.in)); String linia; do { linia = sc.nextline(); System.out.println(linia); while (linia.length() > 0); InputStream

25 Odczyt i zapis plików Żeby otworzyć plik, wystarczy stworzyć obiekt wybranej klasy, podając nazwę pliku w postaci łańcucha znaków lub obiektu klasy File. FileInputStream odczyt pliku binarnego FileOutputStream zapis pliku binarnego (*) FileReader odczyt pliku znakowego FileWriter zapis pliku znakowego (*) (*) możliwe otwarcie pliku do dopisywania, bez usuwania poprzedniej zawartości Otwarty strumień można opakować w wybrany strumień wyspecjalizowany Po zakończeniu strumień należy zamknąć close()

26 Klasa File NIE JEST to plik służy raczej jako opis ścieżek do plików lub katalogów (klasa ta równie dobrze mogłaby nazywać się FilePath): File plik = new File("plik.txt"); FileReader in = new FileReader(plik); Przy użyciu tej klasy można także m.in. sprawdzać informacje o pliku: isdirectory(), isfile(), canread(), canwrite(), exists(), length(), lastmodified() wykonywać operacje na plikach i katalogach: delete(), mkdir(), mkdirs(), renameto() odczytywać zawartość katalogu: list(), listfiles()

27 Strumienie specjalizowane Zamiana strumieni bajtowych na znakowe: InputStreamReader / OutputStreamWriter Odczyt i zapis z uwzględnieniem znaków końca linii: BufferedReader readline() BufferedWriter newline() Strumień z buforem (większa wydajność): BufferedInputStream / BufferedOutputStream Przeciążone metody println(): PrintStream / PrintWriter

28 Strumienie specjalizowane Odczyt i zapis tablic bajtów lub znaków (w pamięci): ByteArrayInputStream / ByteArrayOutputStream CharArrayReader / CharArrayWriter Odczyt i zapis łańcuchów napisów (w pamięci): StringReader / StringWriter Odczyt i zapis plików (bajtowo i znakowo): FileInputStream / FileOutputStream FileReader / FileWriter Serializacja obiektów: ObjectInputStream / ObjectOutputStream

29 Klasa Osoba (JavaBean) public class Osoba { private String imie; private String nazwisko; public Osoba() { public String getimie() { return imie; public void setimie(string noweimie) { this.imie = noweimie; public String getnazwisko() { return nazwisko; public void setnazwisko(string nowenazwisko) { this.nazwisko = nowenazwisko; // opcjonalny dodatkowy konstruktor // (łatwiejsze tworzenie obiektów) public Osoba(String imie, String nazwisko) { this.imie = imie; this. nazwisko = nazwisko;

30 Zapis i odczyt danych w pliku import java.util.*; import java.io.*; public class ZapisOdczyt { private static List<Osoba> osoby = new ArrayList<Osoba>(); public static void main(string[] args) throws IOException { osoby.add(new Osoba("Jan", "Kowalski")); osoby.add(new Osoba("Adam", "Nowak")); zapisz(); osoby.clear(); odczytaj(); wyswietl(); private static void wyswietl() { int nr = 1; for (Osoba o : osoby) { System.out.println(" " + (nr++) + ". " + o.getimie() + " " + o.getnazwisko());

31 Zapis i odczyt danych w pliku private static void zapisz() throws IOException { PrintWriter plik = new PrintWriter( new BufferedWriter(new FileWriter("dane.txt"))); for (Osoba o : osoby) { plik.println(o.getimie() + ":" + o.getnazwisko()); plik.close(); private static void odczytaj() throws IOException { BufferedReader plik = new BufferedReader( new FileReader("dane.txt")); while (plik.ready()) { String s = plik.readline(); String[] dane = s.split(":"); osoby.add(new Osoba(dane[0], dane[1])); plik.close();

32 Serializacja Serializacja pozwala zamienić obiekt na sekwencję bajtów,, w sposób umożliwiający później wierne odtworzenie jego zawartości Inna nazwa to trwałość (ang. persistence) cecha oznaczająca, że życie obiektu nie jest ograniczone tylko do czasu działania programu. Format binarny, skuteczny również w sieci pomiędzy komputerami działającymi pod różnymi JVM. Dużo klas z bibliotek Javy jest zmodyfikowanych tak, że wspierają serializację (np. kolekcje).

33 Zastosowania serializacji Trwałość zapisanie obiektów na dysk oraz odtworzenie przy kolejnym uruchomieniu programu. Zdalne wywoływanie metod między komputerami poprzez RMI (ang. Remote Method Invocation). Pozwala to obiektowi istniejącemu na jednym komputerze zachowywać się tak, jakby istniał na drugim komputerze. Serializacja jest używana do przekazywania argumentów przy wywołaniu metod odległego obiektu oraz do zwracania wartości. Komponenty JavaBeans elementy z których buduje się interfejs użytkownika. W trakcie projektowania stan komponentu jest serializowany, a przy starcie programu jest on odtwarzany.

34 Sposoby realizacji Serializację typowo realizuje się przez: 1. Implementację interfejsu Serializable w klasie, która ma być serializowana (nie ma żadnych metod, jest znacznikiem ). Można także kontrolować przebieg serializacji przez: 2. Implementację w klasie interfejsu Externalizable oraz jego dwóch metod: writeexternal() zapis obiektu i readexternal() odczyt obiektu, musi być też dostępny publiczny konstruktor domyślny. 3. Implementację w klasie interfejsu Serializable oraz dodatkowo (!) dwóch prywatnych metod writeobject() i readobject().

35 Działanie Żeby zserializować obiekt, trzeba utworzyć strumień ObjectOutputStream i wywołać jego metodę writeobject() podając obiekt do serializacji. Może się tu pojawić wyjątek IOException. Żeby odtworzyć obiekt, trzeba utworzyć strumień ObjectInputStream, wywołać jego metodę readobject() i dokonać rzutowania (readobject() zwraca bowiem obiekt klasy Object). Mogą się tu pojawić wyjątki IOException oraz ClassNotFoundException. Słowo kluczowe transient pozwala wskazać, które składowe obiektu mają nie być serializowane.

36 Przykład serializowania obiektów import java.io.*; class Wezel implements Serializable { String nazwa; /*... */ public class Serializacja { Wezel korzen = new Wezel(); /*... */ void zapiszwezly() throws IOException { /*... utworzenie strumienia wyjściowego... */ ObjectOutputStream out = new ObjectOutputStream( /*strumień wyj.*/ ); out.writeobject(korzen); /*... zamknięcie strumienia wyjściowego... */

37 Przykład odtwarzania obiektów /*... */ void przywrocwezly() throws IOException, ClassNotFoundException { /*... utworzenie strumienia wejściowego... */ ObjectInputStream in = new ObjectInputStream( /*strumień wej.*/ ); // odczytanie obiektu i rzutowanie do // odpowiedniego typu korzen = (Wezel) in.readobject(); /*... zamknięcie strumienia wejściowego... */

Strumienie i serializacja

Strumienie i serializacja Strumienie i serializacja Prezentacja dostępna na Syriuszu: http://sirius.cs.put.poznan.pl/~inf80156 Klasy: InputStream, OutputStream, Reader i Writer W Javie hierarchia strumieni oparta jest o cztery

Bardziej szczegółowo

STRUMIENIE DANYCH, SERIALIZACJA OBIEKTÓW

STRUMIENIE 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ółowo

Wykład 4: Wejście/wyjście: strumienie Java

Wykł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ółowo

Kurs programowania. Wykład 10. Wojciech Macyna. 05 maja 2016

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ółowo

Podstawy i języki programowania

Podstawy 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ółowo

STRUMIENIE TEKSTOWE WEJŚCIOWE WPROWADZANIE DANYCH STRUMIENIE BAJTOWE, STRUMIENIE TEKSTOWE

STRUMIENIE 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ółowo

Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków

Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków mgr inż. Maciej Lasota Version 1.0, 13-05-2017 Spis treści Wyjątki....................................................................................

Bardziej szczegółowo

Ję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. 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ółowo

Biblioteki wejścia/wyjścia. Strumienie we/wy (I/O)

Biblioteki 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ółowo

Programowanie obiektowe

Programowanie 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ółowo

Programowanie obiektowe

Programowanie 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ółowo

JAVA. Strumienie wejścia i wyjścia. Pliki - zapis i odczyt

JAVA. 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ółowo

Strumienie, pliki. Sortowanie. Wyjątki.

Strumienie, 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ółowo

Java Zadanie 1. Aby poprawnie uruchomić aplikację desktopową, należy zaimplementować główną metodę zapewniającą punkt wejścia do programu.

Java 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ółowo

Programowanie Obiektowe Ćwiczenie 4

Programowanie Obiektowe Ćwiczenie 4 Programowanie Obiektowe Ćwiczenie 4 1. Zakres ćwiczenia wyjątki kompozycja 2. Zagadnienia Założeniem, od którego nie należy odbiegać, jest by każdy napotkany problem (np. zatrzymanie wykonywanej metody)

Bardziej szczegółowo

Programowanie Obiektowe (Java)

Programowanie 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ółowo

Wykład 8: Obsługa Wyjątków

Wykł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ółowo

Java 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 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ółowo

Obsługa błędów za pomocą wyjątków. Paweł Motofa (140746)

Obsługa błędów za pomocą wyjątków. Paweł Motofa (140746) Obsługa błędów za pomocą wyjątków Paweł Motofa (140746) Co zrobić, gdy wystąpi błąd Przykład Co zrobić, gdy wystąpi błąd Co zrobić, gdy wystąpi błąd Co zrobić, gdy wystąpi błąd Jak wyglądałaby funkcja

Bardziej szczegółowo

Wykład 10: Wejście i Wyjście

Wykł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ółowo

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016 Wykład 1 3 marca 2016 Słowa kluczowe języka Java abstract, break, case, catch, class, const, continue, default, do, else, enum, extends, final, finally, for, goto, if, implements, import, instanceof, interface,

Bardziej szczegółowo

Platformy Programistyczne Zagadnienia sieciowe i wątki

Platformy 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ółowo

1 Klasa File. 2 Writer. Programowanie w j zyku Java - Adam Krechowicz. Klasa File zapewnia podstawowe operacje na plikach

1 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ółowo

Programowanie obiektowe

Programowanie 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ółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 9: Wyjątki 5/5/2013 S.Deniziak:Programowanie obiektowe - Java 1 Co to jest wyjątek? błąd wykonania: InputFile.java:8: Warning: Exception java.io.filenotfoundexception must

Bardziej szczegółowo

Języki i metody programowania Java INF302W Wykład 4

Ję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ółowo

Inynieria oprogramowania Lecture XXX. Java TM cz IV: IO. Bartosz Walter

Inynieria 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ółowo

Strumienie, pliki. Sortowanie. Wyjątki.

Strumienie, 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ółowo

Języki i metody programowania Java INF302W Wykład 3 (część 1)

Ję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ółowo

Wykład 2: Podstawy Języka

Wykł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ółowo

Aplikacje RMI. Budowa aplikacji rozproszonych. Część 2.

Aplikacje 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ółowo

Programowanie w języku Java WYKŁAD

Programowanie 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ółowo

Wprowadzanie danych z klawiatury. Wyjątki związane z wprowadzaniem danych, przekroczeniem rozmiaru tablicy, dzieleniem przez zero itd.

Wprowadzanie 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ółowo

Rozdział 7 Strumienie, operacje wejścia-wyjścia

Rozdział 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ółowo

Aplikacje w środowisku Java

Aplikacje w środowisku Java Aplikacje w środowisku Java Materiały do zajęć laboratoryjnych Wyjątki mgr inż. Kamil Zieliński Katolicki Uniwersytet Lubelski Jana Pawła II 2018/2019 Spis treści Wyjątki... 3 2 Wyjątki Podczas pracy programu

Bardziej szczegółowo

KOMUNIKACJA MIĘDZYPROCESOWA O B S Ł U G A WEJŚCIA/WYJŚCIA

KOMUNIKACJA 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ółowo

Bezpieczne uruchamianie apletów wg

Bezpieczne 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ółowo

Kurs programowania. Wykład 3. Wojciech Macyna. 22 marca 2019

Kurs programowania. Wykład 3. Wojciech Macyna. 22 marca 2019 Wykład 3 22 marca 2019 Klasy wewnętrzne Klasa wewnętrzna class A {... class B {... }... } Klasa B jest klasa wewnętrzna w klasie A. Klasa A jest klasa otaczajac a klasy B. Klasy wewnętrzne Właściwości

Bardziej szczegółowo

Wykł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 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ółowo

Java 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. 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ółowo

Dokumentacja do API Javy.

Dokumentacja 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ółowo

K O M U N I K A C J A MIĘDZYPROCESOWA O B S Ł U G A WEJŚCIA/WYJŚCIA

K 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ółowo

Wyjątki. Streszczenie Celem wykładu jest omówienie tematyki wyjątków w Javie. Czas wykładu 45 minut.

Wyjątki. Streszczenie Celem wykładu jest omówienie tematyki wyjątków w Javie. Czas wykładu 45 minut. Wyjątki Streszczenie Celem wykładu jest omówienie tematyki wyjątków w Javie. Czas wykładu 45 minut. Wydaje się, że żaden użytkownik oprogramowania nie lubi, kiedy stosowany program nagle zawiesza się,

Bardziej szczegółowo

Obiektowe programowanie rozproszone Java RMI. Krzysztof Banaś Systemy rozproszone 1

Obiektowe programowanie rozproszone Java RMI. Krzysztof Banaś Systemy rozproszone 1 Obiektowe programowanie rozproszone Java RMI Krzysztof Banaś Systemy rozproszone 1 Java RMI Mechanizm zdalnego wywołania metod Javy (RMI Remote Method Invocation) posiada kilka charakterystycznych cech,

Bardziej szczegółowo

Dawid Gierszewski Adam Hanasko

Dawid Gierszewski Adam Hanasko Dawid Gierszewski Adam Hanasko Chcemy stworzyć klasę w której możemy przechowywać dwie zmienne dowolnych typów Tworzymy tyle różnych klas ile potrzeba: Class ParaInt{ int pierwszy; Int drugi; Class ParaButow{

Bardziej szczegółowo

WSNHiD, Programowanie 2, Lab. 3. Trwałość danych

WSNHiD, 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ółowo

Strumienie 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 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ółowo

sieć 4) Mechanizm RMI jest zazwyczaj wykorzystywany w rozwiązaniach typu klient-serwer.

sieć 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ółowo

Java. Programowanie Obiektowe Mateusz Cicheński

Java. 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ółowo

Wykład 2 Wybrane konstrukcje obiektowych języków programowania (1)

Wykład 2 Wybrane konstrukcje obiektowych języków programowania (1) MAS dr. Inż. Mariusz Trzaska Wykład 2 Wybrane konstrukcje obiektowych języków programowania (1) Zagadnienia o Podstawy o Kontrolowanie sterowania o Klasy o Interfejsy o Obsługa błędów o Pojemniki o System

Bardziej szczegółowo

Programowanie obiektowe

Programowanie 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ółowo

Zdalne 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. 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ółowo

Wywoływanie metod zdalnych

Wywoływanie metod zdalnych Wywoływanie metod zdalnych model systemu Wywoływanie metod zdalnych aplikacja kliencka interfejs obiekt serwer Podejście obiektowe do budowy systemów rozproszonych proxy szkielet sieć Istota podejścia

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe III. Refleksja Małgorzata Prolejko OBI JA16Z03 Plan Klasa Class. Analiza funkcjonalności klasy. Podstawy obsługi wyjątków. Zastosowanie refleksji do analizy obiektów. Wywoływanie

Bardziej szczegółowo

Oprogramowanie systemów równoległych i rozproszonych Wykład 7

Oprogramowanie 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ółowo

Metody zawarte w klasie File: boolean createnewfile() tworzy nowy, pusty plik, ale tylko jeśli on wcześniej nie istniał. boolean delete() usuwa dany

Metody zawarte w klasie File: boolean createnewfile() tworzy nowy, pusty plik, ale tylko jeśli on wcześniej nie istniał. boolean delete() usuwa dany Metody zawarte w klasie File: boolean createnewfile() tworzy nowy, pusty plik, ale tylko jeśli on wcześniej nie istniał. boolean delete() usuwa dany plik. boolean exists() sprawdza czy plik o zadanej nazwie

Bardziej szczegółowo

Programowanie obiektowe zastosowanie języka Java SE

Programowanie 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ółowo

Kurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016

Kurs 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ółowo

Zad.30. Czy można utworzyć klasę, która implementuje oba interfejsy?

Zad.30. Czy można utworzyć klasę, która implementuje oba interfejsy? Zad.28. Utwórz klasę, która implementuje oba interfejsy: public void pisz ( ) ; public void pisz ( ) ; Zad.29. Utwórz klasę, która implementuje oba interfejsy: public void pisz ( int l i c z b a ) ; public

Bardziej szczegółowo

Ję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. 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ółowo

Programowane refleksyjne i serializacja

Programowane 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ółowo

Programowanie obiektowe

Programowanie 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ółowo

JAVA W SUPER EXPRESOWEJ PIGUŁCE

JAVA 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ółowo

Programowanie rozproszone w języku Java

Programowanie 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ółowo

Przygotował: Jacek Sroka 1. Java SE. Strumienie

Przygotował: 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ółowo

Remote Method Invocation 17 listopada Dariusz Wawrzyniak (IIPP) 1

Remote Method Invocation 17 listopada Dariusz Wawrzyniak (IIPP) 1 interfejs (w języku Java), wywiedziony z Remote obiekt Podejście obiektowe do budowy systemów rozproszonych aplikacja kliencka interfejs serwer stub szkielet sieć Mechanizm RMI umożliwia tworzenie obiektów

Bardziej szczegółowo

Katalog książek cz. 2

Katalog książek cz. 2 Katalog książek cz. 2 Odczytywanie danych z XML Do ćwiczenia dołączony jest plik books.xml zawierający pełen katalog książek. Poniższy listing zawiera przykładowy fragment danych w stosowanym formacie.

Bardziej szczegółowo

Podejście obiektowe do budowy systemów rozproszonych

Podejście obiektowe do budowy systemów rozproszonych Podejście obiektowe do budowy systemów rozproszonych interfejs (w języku Java), wywiedziony z Remote obiekt aplikacja kliencka interfejs serwer stub szkielet sieć Dariusz Wawrzyniak (IIPP) 1 Mechanizm

Bardziej szczegółowo

Programowanie w Internecie. Java

Programowanie 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ółowo

Remote Method Invocation 17 listopada 2010

Remote Method Invocation 17 listopada 2010 Podejście obiektowe do budowy systemów rozproszonych interfejs (w języku Java), wywiedziony z Remote obiekt aplikacja klienckak interfejs serwer stub szkielet sieć Mechanizm RMI umożliwia tworzenie obiektów

Bardziej szczegółowo

Metody dostępu do danych

Metody dostępu do danych Metody dostępu do danych dr inż. Grzegorz Michalski Na podstawie materiałów dra inż. Juliusza Mikody Jak działa JDO Podstawowym zadaniem JDO jest umożliwienie aplikacjom Javy transparentnego umieszczenia

Bardziej szczegółowo

WYJĄTKI. Jest ona jednak czasochłonna i prowadzi do duŝego zapotrzebowania na zasoby systemu.

WYJĄTKI. Jest ona jednak czasochłonna i prowadzi do duŝego zapotrzebowania na zasoby systemu. WYJĄTKI Klasa Throwable Exception Error Klasy dziedziczące po klasie Exception są typami wyjątków, które automatycznie obsługuje Java lub program przy jawnym przechwytywaniu i obsłudze wyjątków w blokach

Bardziej szczegółowo

Podejście obiektowe do budowy systemów rozproszonych

Podejście obiektowe do budowy systemów rozproszonych Podejście obiektowe do budowy systemów rozproszonych interfejs (w języku Java), wywiedziony z Remote obiekt aplikacja kliencka interfejs serwer stub szkielet sieć Dariusz Wawrzyniak 1 Mechanizm RMI umożliwia

Bardziej szczegółowo

Java RMI. Dariusz Wawrzyniak 1. Podejście obiektowe do budowy systemów rozproszonych. obiekt. interfejs. kliencka. sieć

Java RMI. Dariusz Wawrzyniak 1. Podejście obiektowe do budowy systemów rozproszonych. obiekt. interfejs. kliencka. sieć Podejście obiektowe do budowy systemów rozproszonych interfejs (w języku Java), wywiedziony z Remote obiekt aplikacja kliencka interfejs serwer stub szkielet sieć Mechanizm RMI umożliwia tworzenie obiektów

Bardziej szczegółowo

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

Programowanie 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ółowo

Java SE Laboratorium nr 4. Temat: Obsługa wyjątków i zdarzeń

Java SE Laboratorium nr 4. Temat: Obsługa wyjątków i zdarzeń Java SE Laboratorium nr 4 Temat: Obsługa wyjątków i zdarzeń 1 1. Definicja i idea I. Obsługa wyjątków Praktycznie w każdym większym programie powstają jakieś błędy. Powodów jest bardzo wiele, może być

Bardziej szczegółowo

Podstawy programowania obiektowego

Podstawy 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ółowo

Ję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 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ółowo

Wyjątki (exceptions)

Wyjątki (exceptions) Instrukcja laboratoryjna nr 6 Programowanie w języku C 2 (C++ poziom zaawansowany) Wyjątki (exceptions) dr inż. Jacek Wilk-Jakubowski mgr inż. Maciej Lasota dr inż. Tomasz Kaczmarek Wstęp Wyjątki (ang.

Bardziej szczegółowo

Wyjątki Monika Wrzosek (IM UG) Programowanie obiektowe 180 / 196

Wyjątki Monika Wrzosek (IM UG) Programowanie obiektowe 180 / 196 Wyjątki 180 / 196 Wyjątki W Javie istnieje mechanizm tzw. wyjątków (ang. exception), który pozwala na przechwytywanie błędów pojawiających się w programie. Kompilacja tab [ 1 0 ] = 100; spowoduje powstanie

Bardziej szczegółowo

Wywoływanie metod zdalnych

Wywoływanie metod zdalnych Wywoływanie metod zdalnych Podejście obiektowe do budowy systemów rozproszonych Wywoływanie metod zdalnych model systemu obiekt aplikacja kliencka interfejs serwer proxy szkielet sieć Istota podejścia

Bardziej szczegółowo

Programowanie obiektowe

Programowanie 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ółowo

Aplikacja wielowątkowa prosty komunikator

Aplikacja wielowątkowa prosty komunikator Aplikacja wielowątkowa prosty komunikator Klient 0 (host 1) Wątek 0 Komponent serwera Wątek pochodny 3.1 Klient 1 (host 2) Wątek 1 Komponent serwera Wątek pochodny 3.2 Host 4 Serwer Wątek 3 Klient 2 (host

Bardziej szczegółowo

public - może być używana w kodzie poza klasą, jedna klasa ModyfikatorKlasy może być kombinacją wyrażeń:

public - 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ółowo

Polimorfizm, metody wirtualne i klasy abstrakcyjne

Polimorfizm, metody wirtualne i klasy abstrakcyjne Programowanie obiektowe Polimorfizm, metody wirtualne i klasy abstrakcyjne Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Polimorfizm,

Bardziej szczegółowo

JAVA I SIECI. MATERIAŁY: http://docs.oracle.com/javase/tutorial/networking/index.html

JAVA 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ółowo

Metody Metody, parametry, zwracanie wartości

Metody Metody, parametry, zwracanie wartości Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Metody Metody, parametry, zwracanie wartości Metody - co to jest i po co? Metoda to wydzielona część klasy, mająca

Bardziej szczegółowo

Java RMI. Dariusz Wawrzyniak 1. Podejście obiektowe do budowy systemów rozproszonych. obiekt. interfejs. kliencka. sieć

Java RMI. Dariusz Wawrzyniak 1. Podejście obiektowe do budowy systemów rozproszonych. obiekt. interfejs. kliencka. sieć interfejs (w języku Java), wywiedziony z Remote obiekt Podejście obiektowe do budowy systemów rozproszonych aplikacja kliencka stub interfejs serwer szkielet sieć Mechanizm RMI umożliwia tworzenie obiektów

Bardziej szczegółowo

1 Atrybuty i metody klasowe

1 Atrybuty i metody klasowe 1 Atrybuty i metody klasowe Składowe klasowe (statyczne) Każdy obiekt klasy posiada własny zestaw atrybutów. Metody używają atrybutów odpowiedniego obiektu. Czasem potrzeba atrybutów wspólnych dla wszystkich

Bardziej szczegółowo

Java: kilka brakujących szczegółów i uniwersalna nadklasa Object

Java: kilka brakujących szczegółów i uniwersalna nadklasa Object Java: kilka brakujących szczegółów i uniwersalna nadklasa Object Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak PLAN WYKŁADU Konstrukcja obiektów Niszczenie obiektów i zwalnianie zasobów

Bardziej szczegółowo

Informatyka 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 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ółowo

Programowanie obiektowe

Programowanie 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ółowo

Wykład 04. Programowanie obiektowe. Maciej Wołoszyn 17 marca Spis treści

Wykład 04. Programowanie obiektowe. Maciej Wołoszyn 17 marca Spis treści Programowanie obiektowe Wykład 04 Maciej Wołoszyn mailto:woloszyn@fatcat.ftj.agh.edu.pl 17 marca 2009 Spis treści 1 Wyjatki i obsługa błędów 2 1.1 Rzucanie wyjątków............................... 2 1.2

Bardziej szczegółowo

dr Krzysztof Podlaski

dr 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ółowo

Klasy cd. Struktury Interfejsy Wyjątki

Klasy cd. Struktury Interfejsy Wyjątki Klasy cd. Struktury Interfejsy Wyjątki Struktury Struktura pozwala na zdefiniowanie typu danych, który nie charakteryzuje się zbyt złożoną funkcjonalnością (np. punkt, kolor, etc). Do definiowania struktury

Bardziej szczegółowo

Zaawansowane techniki programowania C#

Zaawansowane 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ółowo

Java. Wykład. Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ

Java. Wykład. Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ Procesy i wątki Proces posiada samodzielne środowisko wykonawcze. Proces posiada własny zestaw podstawowych zasobów w czasie wykonywania; W szczególności, każdy proces ma własną przestrzeń pamięci. W uproszczeniu

Bardziej szczegółowo

Wstę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 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ółowo

Programowanie urządzeń mobilnych. dr inż. Andrzej Grosser na podstawie wykładu dr inż. Juliusza Mikody

Programowanie urządzeń mobilnych. dr inż. Andrzej Grosser na podstawie wykładu dr inż. Juliusza Mikody Programowanie urządzeń mobilnych dr inż. Andrzej Grosser na podstawie wykładu dr inż. Juliusza Mikody W bloku inicjalizacji nie można wywołać konstruktora klasy nadrzędnej (poprzez super). class Klasa{

Bardziej szczegółowo

Współbieżność i równoległość w środowiskach obiektowych. Krzysztof Banaś Obliczenia równoległe 1

Współbieżność i równoległość w środowiskach obiektowych. Krzysztof Banaś Obliczenia równoległe 1 Współbieżność i równoległość w środowiskach obiektowych Krzysztof Banaś Obliczenia równoległe 1 Java Model współbieżności Javy opiera się na realizacji szeregu omawianych dotychczas elementów: zarządzanie

Bardziej szczegółowo