Programowanie Obiektowe (Java)

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

Download "Programowanie Obiektowe (Java)"

Transkrypt

1 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 x) { 11 value=x; 12 } 13 } public class Listy { 16 public static void main(string[] args) { 17 ArrayList<Element> a = new ArrayList<Element>(); 18 LinkedList<Element> l = new LinkedList<Element>(); 19 Iterator<Element> it; for(int i=0;i<20; i++) 22 a.add(new Element((int)(Math.random()*20))); Jednym z nowych elementów jakie zostały dodane do języka Java w jej najnowszym wydaniu (numer środowiska 1.5) s ą typy ogólne ( ang. generics), które wzbogacaj ą język Java o mechanizmu podobny do mechanizmu szablonów, znanego z języka C++. S ą one stosowane między innymi w kontenerach. Dzięki nim możemy określi ć jakiej klasy obiekty będ ą przechowywane w kontenerze (lub jaki interfejs będą implementowały te obiekty). Dzięki temu możemy częściowo ograniczyć rzutowanie w dół 1, które nie jest bezpieczne, jeśli nie stosujemy żadnego mechanizmu rozpoznawania typu podczas wykonania programu. Nie możemy jednak, stosując typy ogólne zupełnie pomin ąć rzutowania w dó ł, bowiem oprócz obiektów określonej klasy możemy w kontenerze przechowywa ć równie ż obiekty klas dziedziczących po niej. Typy ogólne mog ą by ć stosowane nie tylko w kontenerach, ale równie ż w zwracanych przez nie iteratorach. Inn ą nowości ą, któr ą możemy stosowa ć wraz z kontenerami jest nowa posta ć pętli for. Oto kod programu ilustrującego użycie list, w którym zastosowano opisane wcześniej nowe elementy Javy: 2, 23 System.out.println(a); 24 for(element e : a) 25 System.out.print(e+" "); 26 System.out.println(); 27 it = a.iterator(); 28 while(it.hasnext()) 29 System.out.print(it.next()+" "); 30 System.out.println(); 31 it=a.iterator(); 32 while(it.hasnext()) { 33 l.addfirst(it.next()); 34 it.remove(); 35 } 36 System.out.println(l); 37 while(!l.isempty()) 1 Korzystając w kontenerach z typów ogólnych sprawiamy, że kontener pamięta klas ę przechowywanych obiektów. Stosowane s ą więc przez niego referencje konkretnej klasy, a nie klasy Object. 2 W języku polskim częściej spotyka si ę obecnie termin typy generyczne. 1

2 38 System.out.print(l.removeLast()+" "); 39 System.out.println(); 40 } 41 } Należy zaznaczy ć, że nowa posta ć pętli for zapewnia większy stopie ń bezpieczeństwa korzystania z kontenerów, ni ż zwykła instrukcja for, jeśli tworzymy pętle zagnieżdżone. Innym udogodnieniem w korzystaniu z kontenerów jest automatyczne opakowywanie i rozpakowywanie typów podstawowych w odpowiadające im klasy. Ta technika pozwala na stworzenie kontenera, do którego będzie można dodawa ć wartości typu int bez dokonywania dodatkowych zabiegów, które zostan ą za nas wykonane automatycznie. 2. Klasa Arrays W pakiecie java.util znajduje si ę klasa Arrays zawierająca wiele metod statycznych pozwalających na manipulowanie zawartości ą tablic. Metoda fill() wypełnia wszystkie elementy tablicy t ą sam ą wartości ą. Metoda equals() służy do porównywania elementów tablicy. Została ona przeciążona dla typów podstawowych i obiektów klasy Object. Należy pamięta ć, że w przypadku obiektów przechowywanych w tablicy, porównywane s ą ich referencje, a nie zawarto ść pól. Jeśli chcemy porównywa ć pola obiektów, to możemy zrobi ć to na dwa sposoby. Pierwszy polega na zaimplementowaniu przez klas ę obiektów przechowywanych w tablicy interfejsu Comparable i jego metody compareto(). Drugi polega na stworzeniu odrębnej klasy implementującej interfejs Comparator (należy zdefiniowa ć jego metody equals() i compare()). Ten drugi sposób wykorzystujemy wówczas, gdy nie mamy dostępu do kodu klasy przechowywanych obiektów. Tablic ę możemy posortowa ć przy pomocy metody sort(), natomiast przeszuka ć j ą możemy za pomoc ą metody binarysearch(). Kopiowanie tablic najlepiej przeprowadzi ć za pomoc ą metody arraycopy(), która jest metod ą statyczn ą klasy System (nie należy ona do klasy kontenerem 3, który zna klas ę obiektów, które przechowuje (notabene tablice w Javie te ż s ą obiektami). Arrays). Na zakończenie należy zaznaczy ć, że tablica jest jedynym 3. Strumienie 1 import java.io.*; 2 import java.util.*; 3 4 class Rekurencja { 5 private File sciezka; 6 7 public Rekurencja(String nazwa) { 8 sciezka = new File(nazwa); 9 } public void start() { 12 walk(sciezka,""); 13 } private void walk(file plik,string indent) { 16 String[] lista; 17 File[] pliki; lista = plik.list(); 20 pliki = plik.listfiles(); 21 for(int i=0; i<lista.length;i++) 22 System.out.println(indent+lista[i]); 23 indent+=" "; 24 for(int i=0; i<pliki.length;i++) Zbiór klas umożliwiających realizację operacji wejścia wyjścia w Javie jest bardzo duży. Od wersji 1.4 jest on wzbogacony o pakiety klas umożliwiających wykonywanie operacji niskopoziomowych na danych znajdujących si ę w pliku lub innym zasobie. Te pakiety nie będ ą jednak przedstawione na tym wykładzie. Zajmiemy si ę jedynie operacjami wysokopoziomowymi, które umożliwiają nam klasy zgromadzone w pakiecie java.io. Pierwsz ą klas ą z tego pakietu, jaka zostanie tu omówiona jest klasa File. Klasa ta pozwala na przeprowadzanie takich operacji na plikach i katalogach, jak: tworzenie nowych plików i katalogów, przeglądanie katalogów, zmian ę nazwy, usunięcie pliku, obsługę ścieżki do pliku lub katalogu, obsługę atrybutów plików. Oto krótki przykład jak wykorzysta ć obiekt takiej klasy do rekurencyjnego wypisania zawartości bieżącego katalogu: Klasa Rekurencja posiada pole sciezka, które jest klasy File. W konstruktorze tej klasy Rekurencja tworzony jest obiekt klasy File. Przez parametr nazwa przekazywana będzie ścieżka dostępu do pliku, z którym będzie związany ten obiekt (w przypadku tego programu będzie to katalog bieżący). Metoda start() rozpoczyna przeszukiwanie tego katalogu, wywołując metod ę walk(). Ta 3 To stwierdzenie jest prawdziwe dla wersji Javy wcześniejszych ni ż 5. 2

3 25 if(pliki[i].isdirectory() && pliki[i].canread()) { 26 System.out.println(pliki[i].getName()+":"); 27 walk(pliki[i],indent); 28 } 29 } 30 } public class Katalogi { 33 public static void main(string[] args) { 34 Rekurencja r = new Rekurencja("."); 35 r.start(); 36 } 37 } ostatnia jest metod ą rekurencyjn ą. Najpierw zapisuje ona referencj ę do tablicy nazw plików w zmiennej lokalnej lista, a następnie w referencji pliki zapisuje adres tablicy obiektów klasy File związanych z tymi plikami. W pierwszej pętli for wypisywane s ą nazwy plików znajdujących si ę w bieżącym katalogu, w drugiej przeglądania jest tablica obiektów klasy File i sprawdzane jest, które z nich są katalogami i czy można te katalogi przeczyta ć (czy program ma do tego uprawnienia). Dla każdego z tych obiektów wywoływana jest rekurencyjnie metoda walk(). Obiekt klasy Rekurencja tworzony jest w klasie publicznej w metodzie main. Konstruktorowi tego obiektu przekazywana jest nazwa katalogu bieżącego, czyli kropka (.). Jeśli za pomoc ą metod klasy File, chcielibyśmy wyświetli ć pliki, których nazwy pasuj ą do ustalonego przez nas wzorca, to do metody list() powinniśmy przekaza ć obiekt klasy, która implementuje interfejs FilenameFilter i zdefiniowa ć jego metod ę accept, która jest deklarowana następująco: boolean accept(file dir, String name); Klasa implementująca ten interfejs może by ć klas ą anonimow ą. Klasy realizujące operacje wejścia wyjścia w Javie zakładaj ą, że zarówno źródłem jak i ujściem danych s ą strumienie. Strumie ń jest abstrakcją oznaczając ą dowolny element mogący pobiera ć lub przyjmowa ć dane. W Javie, w pakiecie java.io można wyróżni ć trzy grupy klas. Pierwsza grupa związana jest z operacjami binarnymi (nazywanymi równie ż bajtowymi), druga jest związana z operacjami znakowymi (uwzględnia kodowanie za pomoc ą standardu Unicode), natomiast trzecia grupa umożliwia zapis i odczyt obiektów. Podstawowymi klasami pozwalającymi na realizację odczytu i zapisu bajtowego s ą klasy InputStream i OutputStream 4. Jak łatwo si ę domyśli ć metod ą służąc ą do odczytania pojedynczego bajta w klasie InputStream jest metoda read(), natomiast do zapisu pojedynczego bajta w drugiej z wymienionych klas jest write(). Z tych klas wywodzą si ę inne, które związane s ą z obsług ą poszczególnych rodzajów źróde ł i uj ść. Te klasy zostały zestawione poniżej w tabelę 5 : ByteArrayInputStream Klasa Sposób działania Źródłem danych jest tablica znajdująca si ę w pamięci operacyjnej. Sposób użycia Parametrem wywołania konstruktora jest referencja do tablicy z której będ ą pobierane dane. Powinno si ę używa ć razem z obiektami FilterInputStream. StringBuffferInputStream Wykonuje konwersj ę łańcucha znaków do obiektu klasy InputStream. Parametrem wywołania konstruktora jest referencja do obiektu klasy String. Również należy używa ć z obiektami klasy FilterInputStream. FileInputStream Umożliwia odczyt danych z pliku. Argumentem wywołania konstruktora jest łańcuch znaków reprezentujący ścieżkę dostępu do pliku, lub obiekt klasy File związany z tym plikiem lub klasy FileDescriptor. Podobnie jak poprzednio powinno si ę używa ć z obiektami klasy FilterInputStream. PipedInputStream Umożliwia odczyt danych z potoku nienazwanego (ang. pipe) Parametrem wywołania konstruktora tej klasy jest obiekt klasy PipedOutputStream. Obiekty tej klasy s ą używane w aplikacjach wielowątkowych, jako środki umożliwiające komunikacj ę między wątkami. Reszta jak wyżej. 4 Klasy InputStream i OutputStream s ą klasami abstrakcyjnymi, więc wszędzie tam, gdzie będzie mowa o obiektach tych klas, będziemy mie ć na myśli obiekty jej klas pochodnych. 5 Tabela ta jest utworzona na podstawie Thinking in Java Bruce'a Eckela. 3

4 Klasa Sposób działania Sposób użycia SequenceInputStream Pozwala połączy ć pewn ą liczb ę strumieni wejściowych w jeden strumie ń. Argumentami wywołania s ą dwa obiekty klasy InputStream lub kontener klasy Enumeration zawierający takie obiekty. FilterInputStream Jest to klasa abstrakcyjna służąca za klasę bazow ą dla klas obiektów dekoratorów, obiektów klasy InputStream i pochodnych, które zostan ą opisane później. ByteArrayOutputStream Tworzy bufor w pamięci, do którego będą zapisane dane. Parametr konstruktora jest opcjonalny i określa początkowy rozmiar bufora. Obiekty tej klasy powinny by ć połączone z obiektami klasy FilterOutputStream. FileOutputStream Zapisuje dane do pliku. Argumentem wywołania konstruktora jest łańcuch znaków reprezentujący ścieżkę dostępu do pliku, lub obiekt klasy File związany z tym plikiem lub klasy FileDescriptor. Podobnie jak poprzednio należy używa ć z obiektami klasy FilterOutputStream. PipedOutputStream Umożliwia zapis danych do potoku nienazwanego (ang. pipe) Parametrem wywołania konstruktora tej klasy jest obiekt klasy PipedInputStream. Obiekty tej klasy s ą używane w aplikacjach wielowątkowych, jako środki umożliwiające komunikacj ę między wątkami. Reszta jak wyżej. FilterOutputStream Jest to klasa abstrakcyjna służąca za klasę bazow ą dla klas obiektów dekoratorów, obiektów klasy OutputStream i pochodnych, które zostan ą opisane później. W większości aplikacji napisanych w Javie, aby utworzy ć reprezentacj ę pojedynczego strumienia wejściowego lub wyjściowego tworzy si ę niej jeden lecz kilka obiektów. Pierwszy z tych obiektów jest obiektem której ś z klas wymienionych wyżej, natomiast pozostałe obiekty są dekoratorami, które zwiększaj ą funkcjonalno ść strumienia. Oto zestawienie tych dekoratorów 6 : Klasa Działanie Sposób użycia DataInputStream Umożliwia odczyt danych prostych typów w sposób niezależny od ich faktycznego zapisu w danym systemie. Jego metody, to np.: readbyte(), readfloat(). Argumentem wywołania konstruktora jest obiekt klasy InputStream. BufferedInputStream LineNumberInputStream Używany, w celu przyspieszenia operacji odczytu ze strumienia poprzez zbuforowanie danych. Śledzi numery wierszy w strumieniu wejściowym. Do jego metod nale żą: getlinenumber() i setlinenumber(int) Argument konstruktora taki sam, jak wyżej. Dodatkowy argument może określa ć rozmiar bufora. Obiekty tej klasy nie dostarczają własnych interfejsów. Argument wywołania konstruktora jak poprzednio. Zapewnia numerowanie wierszy. PushBackInputStream DataOutputStream Tworzy bufor o rozmiarze jednego bajta, pozwalający na cofnięcie do strumienia ostatniego odczytanego baja. Umożliwia zapis danych podstawowych typów do strumienia niezależny od platformy. Przykładowe metody: writebyte(), writefloat(). Argument konstruktora jak wyżej. Używany w tworzeniu kompilatorów i innych programów realizujących analiz ę leksykaln ą wejścia. Argumentem konstruktora jest obiekt klasy OutputStream. 6 Na podstawie Thinking in Java Bruce'a Eckela. 4

5 Klasa Działanie Sposób użycia PrintStream Formatuje dane wyjściowe, decydując o sposobie ich wyświetlania Argument konstruktora jak wyżej. Opcjonalny drugi argument typu boolean określa, czy bufor związany ze strumieniem jest opróżniany po każdej operacji zapisu. BufferOutputStream Buforuje dane do zapisu. Można wymusi ć ich zapisanie wywołując metod ę flush() obiektu tej klasy. Argumentem wywołania konstruktora jest obiekt klasy OutputStream i opcjonalnie rozmiar bufora. Oto przykład realizujący bajtowy odczyt danych z pliku: 1 import java.io.*; 2 class Odczyt { 3 private FileInputStream fs; 4 5 public Odczyt(String s) { 6 try { 7 fs = new FileInputStream(new File(s)); 8 }catch(filenotfoundexception e) { 9 e.printstacktrace(); 10 System.err.println(e.getLocalizedMessage()); 11 }catch(exception e) { 12 e.printstacktrace(); 13 System.err.println(e.getLocalizedMessage()); 14 } 15 } public void czytaj() throws IOException { 18 try { 19 int a; 20 while((a=fs.read())!=-1) System.out.print(a); 21 System.out.println(); 22 }catch(ioexception e) { 23 e.printstacktrace(); 24 System.err.println(e.getLocalizedMessage()); 25 }catch(exception e) { 26 e.printstacktrace(); 27 System.err.println(e.getLocalizedMessage()); 28 }finally { 29 fs.close(); 30 } 31 } 32 } 33 5

6 34 public class OdczytBinarny { 35 public static void main(string[] args) { 36 Odczyt o = new Odczyt("OdczytBinarny.java"); 37 try { 38 o.czytaj(); 39 }catch(ioexception e) { 40 e.printstacktrace(); 41 System.err.println(e.getLocalizedMessage()); 42 }catch(exception e) { 43 e.printstacktrace(); 44 System.err.println(e.getLocalizedMessage()); 45 } 46 } 47 } Odczyt i zapis znakowy realizowany jest przez inne klasy, których funkcjonalno ść odpowiada przedstawionym wyżej klasom. Do tych klas nale żą: Reader, Writer, FileReader, FileWriter, StringReader, StringWriter, CharArrayReader, CharArrayWriter, PipedReader i PipedWriter. Dodatkowo istniej ą klasy umożliwiające konwersj ę strumieni z bajtowych na znakowe. S ą to InputStreamReader i OutputStreamWriter. Klasy odczytu i zapisu znakowego posiadaj ą równie ż własne dekoratory: FilterReader, FilterWriter, BufferReader, BufferWriter, PrintWriter, LineNumberReader, PushBackReader i StreamTokenizer. Ostatni dekorator służy do rozpoznawania wzorców w odczytywanych ze strumienia danych i od wersji 1.4 Javy w dużej mierze zosta ł zastąpiony przez klasy realizujące rozpoznawanie wzorców ( ang. pattern matching). Oto dwa przykłady użycia pokazujące w jaki sposób skorzysta ć ze znakowych operacji odczytu. Pierwszy czyta dane z pliku, natomiast drugi konwertuje strumie ń związany ze standardowym wejściem na strumie ń znakowy i wypisuje jego zawarto ść na ekran: 1 import java.io.*; 2 class Odczyt { 3 private FileReader fs; 4 5 public Odczyt(String s) { 6 try { 7 fs = new FileReader(s); 8 }catch(filenotfoundexception e) { 9 e.printstacktrace(); 10 System.err.println(e.getLocalizedMessage()); 11 }catch(exception e) { 12 e.printstacktrace(); 13 System.err.println(e.getLocalizedMessage()); 14 } 15 } public void czytaj() throws IOException { 18 try { 19 char a; 20 while((a=(char)fs.read())!=(char)-1) System.out.print(a); 6

7 21 System.out.println(); 22 }catch(ioexception e) { 23 e.printstacktrace(); 24 System.err.println(e.getLocalizedMessage()); 25 }catch(exception e) { 26 e.printstacktrace(); 27 System.err.println(e.getLocalizedMessage()); 28 }finally { 29 fs.close(); 30 } 31 } 32 } public class OdczytZnakowy { 35 public static void main(string[] args) { 36 Odczyt o = new Odczyt("OdczytZnakowy.java"); 37 try { 38 o.czytaj(); 39 }catch(ioexception e) { 40 e.printstacktrace(); 41 System.err.println(e.getLocalizedMessage()); 42 }catch(exception e) { 43 e.printstacktrace(); 44 System.err.println(e.getLocalizedMessage()); 45 } 46 } 47 } import java.io.*; public class Input { public static void main(string[] args) { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); try { System.out.println(br.readLine()); } catch(exception e) { e.printstacktrace(); } } } 7

8 Kolejny przykład pokazuje w jaki sposób uży ć dekoratora BufferReader do odczytu pliku: 1 import java.io.*; 2 class Odczyt { 3 private BufferedReader br; 4 5 public Odczyt(String s) { 6 try { 7 br = new BufferedReader(new FileReader(s)); 8 }catch(filenotfoundexception e) { 9 e.printstacktrace(); 10 System.err.println(e.getLocalizedMessage()); 11 }catch(exception e) { 12 e.printstacktrace(); 13 System.err.println(e.getLocalizedMessage()); 14 } 15 } public void czytaj() throws IOException { 18 try { 19 String a; 20 while((a=br.readline())!=null) System.out.println(a); 21 System.out.println(); 22 }catch(ioexception e) { 23 e.printstacktrace(); 24 System.err.println(e.getLocalizedMessage()); 25 }catch(exception e) { 26 e.printstacktrace(); 27 System.err.println(e.getLocalizedMessage()); 28 }finally { 29 br.close(); 30 } 31 } 32 } public class OdczytBuforowany { 35 public static void main(string[] args) { 36 Odczyt o = new Odczyt("OdczytBuforowany.java"); 37 try { 38 o.czytaj(); 39 }catch(ioexception e) { 40 e.printstacktrace(); 8

9 41 System.err.println(e.getLocalizedMessage()); 42 }catch(exception e) { 43 e.printstacktrace(); 44 System.err.println(e.getLocalizedMessage()); 45 } 46 } 47 } Opisane wyżej klasy słu żą do realizacji operacji wejścia wyjścia na zasadzie dostępu sekwencyjnego, jeśli jest nam potrzebny dostęp swobodny, możemy skorzysta ć z metod klasy RandomAccesFile. Java standardowo zawiera równie ż klasy umożliwiające zapis i odczyt plików skompresowanych. Istniej ą równie ż dwie klasy, związane ze strumieniami binarnymi (bajtowymi), które umożliwiaj ą zapis i odczyt obiektów. Takie operacje nazywa si ę operacjami serializacji obiektów. Te klasy to ObjectInputStream i ObjectOutputStream. Pierwsza posiada metodę readobject(), druga writeobject(). Aby obiekt móg ł by ć zapisany do strumienia jego klasa musi implementowa ć interfejs Serializable, który nie deklaruje żadnej metody, a pełni tylko funkcj ę znacznika, wskazującego, że obiekt danej klasy może by ć zapisany lub odczytany ze strumienia. Należy pamięta ć o tym, że metoda readobject() zwraca referencj ę klasy Object, a więc konieczne jest rzutowanie w dó ł, aby odtworzy ć właściwą klas ę obiektu. Jeśli nie chcemy, aby pewne informacje przechowywane w polach obiektu były zapisywane w pliku, to takie pole deklarujemy z użyciem słowa kluczowego transient. Inn ą metoda polega na implementowaniu interfejsu Externalizable zamiast Serializable i zdefiniowaniu jego metod writeexternal() i readexternal(), w których trzeba zawrze ć kod odpowiedzialny za zapis poszczególnych pól obiektu. 9

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

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

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

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 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

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

Programowanie Obiektowe (Java)

Programowanie Obiektowe (Java) 1. Wprowadzenie do kontenerów Wykład ósmy Kontenery s ą obiektami, które potrafi ą przechowywa ć inne obiekty w określony sposób. O kontenerach można myśle ć jako o gotowych do użycia strukturach danych.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 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 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

Obszar statyczny dane dostępne w dowolnym momencie podczas pracy programu (wprowadzone słowem kluczowym static),

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

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

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

MATERIAŁY POMOCNICZE DO ĆWICZENIA 3 Klasy i obiekty; atrybuty i metody

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

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018 Informatyka I Klasy i obiekty. Podstawy programowania obiektowego dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2018 Plan wykładu Pojęcie klasy Deklaracja klasy Pola i metody klasy

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

Podstawy Języka Java

Podstawy Języka Java Podstawy Języka Java Programowanie obiektowe Programowanie obiektowe (z ang. object-oriented programming), to paradygmat programowania, w którym programy definiuje się za pomocą obiektów elementów łączących

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

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

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

Podstawy obiektowości

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

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Laboratorium 1. Wstęp do programowania w języku Java. Narzędzia 1. Aby móc tworzyć programy w języku Java, potrzebny jest zestaw narzędzi Java Development Kit, który można ściągnąć

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

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

Klasy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 13

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

Wykład 4: Klasy i Metody

Wykład 4: Klasy i Metody Wykład 4: Klasy i Metody Klasa Podstawa języka. Każde pojęcie które chcemy opisać w języku musi być zawarte w definicji klasy. Klasa definiuje nowy typ danych, których wartościami są obiekty: klasa to

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

PARADYGMATY PROGRAMOWANIA Wykład 4

PARADYGMATY PROGRAMOWANIA Wykład 4 PARADYGMATY PROGRAMOWANIA Wykład 4 Metody wirtualne i polimorfizm Metoda wirualna - metoda używana w identyczny sposób w całej hierarchii klas. Wybór funkcji, którą należy wykonać po wywołaniu metody wirtualnej

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

Java - tablice, konstruktory, dziedziczenie i hermetyzacja

Java - tablice, konstruktory, dziedziczenie i hermetyzacja Java - tablice, konstruktory, dziedziczenie i hermetyzacja Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak PLAN WYKŁADU zmienne tablicowe konstruktory klas dziedziczenie hermetyzacja

Bardziej szczegółowo

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

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

Podstawowe części projektu w Javie

Podstawowe części projektu w Javie Podstawowe części projektu w Javie Pakiet w Javie to grupa podobnych typów klas, interfejsów i podpakietów. Pakiet w Javie może być wbudowany lub zdefiniowany przez użytkownika. Istnieje wiele wbudowanych

Bardziej szczegółowo

System obsªugi wej±cia i wyj±cia.

System obsªugi wej±cia i wyj±cia. System obsªugi wej±cia i wyj±cia. Robert A. Kªopotek r.klopotek@uksw.edu.pl Wydziaª Matematyczno-Przyrodniczy. Szkoªa Nauk cisªych, UKSW 6.04.2017 Java I/O Java I/O (Input and Output) - jest to zaawansowany

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

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

Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 3. Karol Tarnowski A-1 p.

Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 3. Karol Tarnowski A-1 p. Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni Wykład 3 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Abstrakcja funkcyjna Struktury Klasy hermetyzacja

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

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

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

Programowanie w Javie Lista nr 1. Wybieramy kategorię Java, a wśród Projektów Java Application i [NEXT]

Programowanie w Javie Lista nr 1. Wybieramy kategorię Java, a wśród Projektów Java Application i [NEXT] Programowanie w Javie Lista nr 1 1. Jak uruchomić pierwszy program w Javie? Przykład przy wykorzystaniu NetBeans: File->New Project Wybieramy kategorię Java, a wśród Projektów Java Application i [NEXT]

Bardziej szczegółowo

Interfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej

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

Rozdział 4 KLASY, OBIEKTY, METODY

Rozdział 4 KLASY, OBIEKTY, METODY Rozdział 4 KLASY, OBIEKTY, METODY Java jest językiem w pełni zorientowanym obiektowo. Wszystkie elementy opisujące dane, za wyjątkiem zmiennych prostych są obiektami. Sam program też jest obiektem pewnej

Bardziej szczegółowo

Aplikacje w środowisku Java

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

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

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

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

Wykład 4. Tablice. Pliki

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

Wykład 7: Pakiety i Interfejsy

Wykład 7: Pakiety i Interfejsy Wykład 7: Pakiety i Interfejsy Plik Źródłowy w Javie Składa się z: instrukcji pakietu (pojedyncza, opcjonalna) instrukcji importujących (wielokrotne, opcjonalne) deklaracji klasy publicznej (pojedyncza,

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

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

Techniki programowania INP001002Wl rok akademicki 2017/18 semestr letni. Wykład 5. Karol Tarnowski A-1 p.

Techniki programowania INP001002Wl rok akademicki 2017/18 semestr letni. Wykład 5. Karol Tarnowski A-1 p. Techniki programowania INP001002Wl rok akademicki 2017/18 semestr letni Wykład 5 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Standardowa biblioteka szablonów (Standard Template

Bardziej szczegółowo

Kurs programowania. Wykład 9. Wojciech Macyna. 28 kwiecień 2016

Kurs programowania. Wykład 9. Wojciech Macyna. 28 kwiecień 2016 Wykład 9 28 kwiecień 2016 Java Collections Framework (w C++ Standard Template Library) Kolekcja (kontener) Obiekt grupujacy/przechowuj acy jakieś elementy (obiekty lub wartości). Przykładami kolekcji sa

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

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

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

Programowanie w języku Java (OCA+OCP)

Programowanie w języku Java (OCA+OCP) Kod szkolenia: Tytuł szkolenia: OCAP Programowanie w języku Java (OCA+OCP) Przygotowanie do uzyskania certyfikatów OCAJP oraz OCPJP Dni: 5 Opis: Adresaci szkolenia Szkolenie adresowane jest do osób chcących

Bardziej szczegółowo

Podstawy otwartych języków programowania Przechowywanie danych

Podstawy otwartych języków programowania Przechowywanie danych Podstawy otwartych języków programowania Przechowywanie danych Wiktor Wandachowicz Sposoby przechowywania danych Typy podstawowe Pojedyncze obiekty Tablice obiektów i tablice typów podstawowych jednowymiarowe

Bardziej szczegółowo

Multimedia JAVA. Historia

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

KLASY, INTERFEJSY, ITP

KLASY, INTERFEJSY, ITP KLASY, INTERFEJSY, ITP ZAGADNIENIA: Klasy, modyfkatory dostępu, pakiety. Zmienne i metody statyczne. Klasy abstrakcyjne, dziedziczenie. Interfejsy. Komentarze i javadoc, http://th-www.if.uj.edu.pl/zfs/ciesla/

Bardziej szczegółowo

Korzystanie z bibliotek standardowych

Korzystanie z bibliotek standardowych Korzystanie z bibliotek standardowych Java posiada bogatą bibliotekę standardowych pakietów, i tak do podstawowych naleŝą: java.lang - jest, podstawowym pakietem języka Java, domyślnie importowanym dla

Bardziej szczegółowo

Java Język programowania

Java Język programowania Java Język programowania Język Java Bazuje i jest zbliżony do C/C++ Porosty zbiór typów danych (podział na typy prymitywne i obiektowe) Zarządzanie pamięcią i Garbage Collection Zintegrowana synchronizacja

Bardziej szczegółowo

Aplikacje w środowisku Java

Aplikacje w środowisku Java Aplikacje w środowisku Java Materiały do zajęć laboratoryjnych Klasy i obiekty - dziedziczenie mgr inż. Kamil Zieliński Katolicki Uniwersytet Lubelski Jana Pawła II 2018/2019 W ramach poprzedniego laboratorium

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

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

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

Programowanie Obiektowe Java

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

Interfejsy i klasy wewnętrzne

Interfejsy i klasy wewnętrzne Interfejsy i klasy wewnętrzne mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011 Interfejs klasy sposób komunikacji z jej obiektami (zestaw składowych publicznych). Określa on zestaw

Bardziej szczegółowo

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu. Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu. Dr inż. Zofia Kruczkiewicz Dwa sposoby tworzenia apletów Dwa sposoby

Bardziej szczegółowo

Prototype (prototyp) Cel: Przykład: Określenie rodzaju tworzonych obiektów poprzez wskazanie ich prototypu. Nowe instancje tworzymy kopiując prototyp.

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

Konstruktory. Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut.

Konstruktory. Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut. Konstruktory Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut. Rozpatrzmy przykład przedstawiający klasę Prostokat: class

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Java P. L. Krzysztof Lemay, Naughton Barteczko R. Cadenhead JAVA, Java Podręcznik 2 wykłady dla kaŝdego Języka i ćwiczenia Programowania

Bardziej szczegółowo

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji.

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

Podejście obiektowe. Tablice obiektów Przykład 1 metody i atrybuty statyczne oraz niestatyczne

Podejście obiektowe. Tablice obiektów Przykład 1 metody i atrybuty statyczne oraz niestatyczne Podejście obiektowe. Tablice obiektów Przykład 1 metody i atrybuty statyczne oraz niestatyczne import javax.swing.*; import java.util.*; public class Napis4 { String wynik = ""; static int ile_obiektow

Bardziej szczegółowo

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy Wykład 3, część 3 1 Język JAVA podstawy Plan wykładu: 1. Konstrukcja kodu programów w Javie 2. Identyfikatory, zmienne 3. Typy danych 4. Operatory, instrukcje sterujące instrukcja warunkowe,

Bardziej szczegółowo

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

Języki i metody programowania Java INF302W Wykład 2 (część 1) Języki i metody programowania Java INF302W Wykład 2 (część 1) Autor Dr inż. Zofia Kruczkiewicz Autor: Zofia Kruczkiewicz, Języki i metody programowania Java, wykład 2, część 1 1 Struktura wykładu 1. Identyfikacja

Bardziej szczegółowo