Programowanie sieciowe

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

Download "Programowanie sieciowe"

Transkrypt

1 Programowanie sieciowe Wykład 2: Java, cd. mgr inŝ. Paweł Kośla mgr Marcin Raniszewski Łódź, 2009

2 Plan wykładu Dziedziczenie Rzutowanie Pakiety Modyfikatory dostępu Metody i klasy abstrakcyjne Interfejsy UŜyteczne klasy Wyjątki Aplikacja graficzna Modelowanie okna Obsługa zdarzeń 2

3 Dziedziczenie UmoŜliwia tworzenie z danej klasy klas pochodnych (podklas). Klasa pochodna dziedziczy pola i metody po klasie bazowej (nadklasie). MoŜna z nich korzystać tak, jakby były zadeklarowane w danej klasie. (ograniczenia poprzez modyfikator dostępu private) Podklasa moŝe dziedziczyć tylko po jednej nadklasie. Klasa pochodna moŝe mieć swoje klasy pochodne w ten sposób powstaje hierarchia klas. KaŜda klasa dziedziczy po klasie Object klasie bazowej wszystkich klas w Javie 3

4 Dziedziczenie public class KlasaBazowa { public int i; public void wypisz() { System.out.println( Wartosc i: + i); public class Pochodna extends KlasaBazowa { public void metoda() { Pochodna obiekt = new Pochodna (); obiekt.i = 3; obiekt.metoda(); obiekt.wypisz(); // Wartosc i: 3 4

5 Dziedziczenie Przysłanianie metod pozwala na powtórne deklarowanie w klasie pochodnej tych samych metod co w klasie bazowej. Nie moŝna przysłaniać metod z modyfikatorem final. Nie moŝna zmieniać typu metody statycznej na niestatyczną class Pochodna extends KlasaBazowa { void wypisz() { System.out.println( Metoda wywolana w podklasie ); obiekt.wypisz(); // Metoda wywolana w podklasie 5

6 Słowa super i this Słowo kluczowe super uŝywane jest przy odwołaniach do metod, konstruktorów i pól przodka (nadklasy) Słowo kluczowe this oznacza obecny obiekt klasy public class Wzor { public int zmienna; Wzór(int i) { zmienna = i; public class Klasa extends Wzor { int a, b = 10; Klasa() { super(7); public void seta(int a) { this.a = a; 6

7 Rzutowanie Java w razie potrzeby zamieni automatycznie jeden typ danych na inny (przypisanie wartości int do double). Rzutowanie umoŝliwia wskazanie konwersji lub wymuszenie konwersji w miejscu, w którym normalnie by nie nastąpiła. void rzutowanie() { int i = 300; long l = (long)i; long l2 = (long)300; MoŜna rzutować zmienną jak i wartość liczbową. PowyŜsze rzutowanie jest zbyteczne, gdyŝ jest zapewnione automatycznie (typ mniejszy rzutujemy na większy). Java pozwala na rzutowanie kaŝdego typu podstawowego na kaŝdy inny typ podstawowy, oprócz typu logicznego, który w ogóle nie moŝe być rzutowany. 7

8 Rzutowanie long l = L; int i = (int)l; System.out.println(i); PowyŜszy kod wypisze na standardowe wyjście iterał Jeśli nie wpisalibyśmy jawnej konwersji, kompilator zgłosiłby błąd: Type mismatch: cannot convert from long to int. Aby rzutować klasy, potrzebne są specjalne metody, które taką konwersję wykonają (wyjątek stanowi klasa String: klasa Object zawiera metodę tostring(), która umoŝliwia konwersję dowolnej klasy na obiekt typu String). MoŜliwe jest rzutowanie w ramach rodziny typów, czyli typów dziedziczących (moŝna rzutować String na Object (rzutowanie w górę) i Object na String, o ile obiekt jest rzeczywiście typu String (inaczej otrzymamy wyjątek ClassCastException)). 8

9 Pakiet Pakiety są bibliotekami klas. Klasy kompilowane z deklaracją pakietu package naleŝą do pakietu o nazwie podanej w deklaracji. package dom; Nazwy pakietów tworzone są w sposób odpowiadający hierarchii ścieŝek, w której znajdują się klasy. package dom.kuchnia; class kuchenka { Klasy kompilowane bez nazwy pakietu naleŝą do pakietu domyślnego. Instrukcja package musi być pierwszym elementem programu nie będącym komentarzem. Pakiety pełnią rolę porządkującą względem przestrzeni nazw i chronią przed kolizjami klas. Aby utrzymać porządek Java umieszcza wszystkie plik.class z danego pakietu w jednym katalogu. Zebranie plików pakietu w jednym podkatalogu ułatwia: - tworzenie unikatowych nazw pakietów, - odnajdywanie klas ukrytych w strukturze katalogów. ŚcieŜka dostępu ukryta jest w nazwie pakietu. Pliki z pakietu mojpakiet.graf zostaną umieszczone w katalogu mojpakiet/graf. 9

10 Pakiet Odwołując się do klas, które znajdują się w innych pakietach trzeba podać ich lokalizację: java.util.date data = new java.util.date(); PoniewaŜ jest to niewygodne, Java umoŝliwia importowanie pojedynczych klas lub całych pakietów. Aby włączyć pakiet do programu piszemy: import java.util.*; Import pojedynczej klasy: import java.util.arraylist; Polecenie import jest odpowiednikiem instrukcji #include z języka C/C++. Kompilator nie zgłosi Ŝadnych zastrzeŝeń, nawet jeśli pakiet zostanie zaimportowany więcej niŝ jeden raz. 10

11 Modyfikatory dostępu Przy programowaniu obiektowym istotnym zagadnieniem jest oddzielenie rzeczy, które się zmieniają od rzeczy, które pozostają takie same. Postępowanie takie nazywa się hermetyzacją. Język Java dostarcza modyfikatory dostępu, które są uŝyteczne temu zagadnieniu. Dostępne poziomy dostępu to: public, protected, przyjazny, pakietowy(ang. package) (bez określonego słowa kluczowego), private. Modyfikatory dostępu umieszcza się przed definicją składnika klasy. Modyfikator naleŝy ustawić przed kaŝdym składnikiem klasy osobno. Nie obowiązuje tu zapis znany z C++. public class Klasa { public int i; private long l; double d; 11

12 Modyfikatory dostępu Modyfikator klasa pakiet podklasa wszędzie private + przyjazny + + protected + + public Klasy nie mogą być ani typu private, ani typu protected (wyjątkiem klasy wewnętrzne). Aby uniemoŝliwić dostęp do danej klasy, naleŝy jej wszystkie konstruktory oraz pola statyczne uczynić prywatnymi (lub zaleŝnie od potrzeby określić dostęp na przyjazny lub chroniony). 12

13 Metody i klasy abstrakcyjne Metoda abstrakcyjna jest metodą niekompletną zawiera tylko deklarację, nie posiada natomiast ciała. Deklaracja tej metody poprzedzona jest słowem kluczowym abstract. Jeśli klasa posiada co najmniej jedną metodę abstrakcyjną, wówczas staje się klasą abstrakcyjną i jej deklaracja musi być poprzedzona słowem kluczowym abstract. Przykład: abstract class Baza { void metoda() { return; abstract public void metodaabstract(); //brak ciała metody 13

14 Metody i klasy abstrakcyjne Klasę abstrakcyjną tworzy się, gdy chcemy manipulować zestawem klas pochodnych poprzez wspólny interfejs. Mają one wyraŝać tylko interfejs, a nie określoną implementację. Jeśli dziedziczymy po klasie abstrakcyjnej i chcemy tworzyć obiekty klasy potomnej, wtedy musimy dostarczyć definicje wszystkich metod abstrakcyjnych klasy bazowej Przykład: abstract class Baza { void metoda() { return; public abstract void metodaabstract(); class Jeden extends Baza { public void metodaabstract() { System.out.println( wyswietl tekst ); //wszystkie klasy pochodne musza //mieć taka metodę zdefiniowaną 14

15 Metody i klasy abstrakcyjne Jeśli nie zdefiniujemy wszystkich metod abstrakcyjnych w klasie pochodnej, nowa klasa stanie się klasą abstrakcyjną i kompilator zmusi nas do uŝycia słowa abstract takŝe w stosunku do niej. Przykład: abstract class Baza { void metoda() { return; public abstract void metodaabstract(); abstract class Dwa extends Baza { void metoda(){ System.out.println( w klasie Dwa ); 15

16 Metody i klasy abstrakcyjne Nie moŝna utworzyć obiektu dla klasy abstrakcyjnej. MoŜliwe jest zadeklarowanie klasy jako abstrakcyjnej mimo, Ŝe nie posiada Ŝadnych metod abstrakcyjnych. Przydatne jest to, gdy chcemy zapobiec tworzenia obiektów naszej klasy, mimo Ŝe nie ma sensu deklarowania którejkolwiek z metod jako abstrakcyjną. 16

17 Interfejs Słowo kluczowe interface produkuje klasę całkowicie abstrakcyjną. Klasa ta nie zawiera Ŝadnej implementacji, a jedynie zbiór metod które musi zawierać implementująca go klasa. Interfejsy zawierają tylko publiczne metody abstrakcyjne (niejawne public abstract) oraz tylko statyczne, finalne i publiczne pola (niejawnie public static final) Dzięki interfejsom moŝemy w języku Java wprowadzić mechanizm znany z języka C++ wielokrotnego dziedziczenia. Interfejsy pozwalają ustanowić formę klasy: nazwy metod, listy argumentów oraz typy zwracane jednak bez ciał metod. Interfejs mówi nam: oto jak będą wyglądać wszystkie klasy implementujące mnie. Przykład: interface Instrument { int i = 5; //automatycznie public static i final String what(); //automatycznie public abstract void play(int num); //automatycznie public abstract 17

18 Interfejs Aby klasa mogła realizować dany interfejs naleŝy uŝyć słowa kluczowego implements. MoŜna implementować kilka interfejsów na raz ( wielokrotne dziedziczenie ). MoŜna jednocześnie dziedziczyć (tylko po jednej klasie) i implementować (po wielu interfejsach) Przykład: class Gitara implements Instrument, Strunowy { String what() { return Jestem Gitara ; void play(int num) { System.out.println( Gram dźwięk +num); void strojenie() { System.out.println( Wykonuje strojenie ); class Altowka extends Skrzypce implements Instrument, Strunowy {... 18

19 Interfejs Kiedy zatem stosować klasy abstrakcyjne, a kiedy interfejsy? JeŜeli chcemy stworzyć klasę bazową bez implementowania metod naleŝy wybrać interfejs. Jedynie w razie konieczności zdefiniowania metod warto posłuŝyć się klasą abstrakcyjną. 19

20 Sprzątanie (Garbage Collector) W Javie nie ma destruktorów. Zakończenie Ŝycia niepotrzebnych obiektów oraz odzyskanie pamięci czyli odśmiecanie (ang. Garbage Collecting) następuje asynchronicznie i jest wykonywane przez specjalny wątek o niskim priorytecie. Odśmiecanie moŝna wymusić wywołując metodę: System.gc() 20

21 UŜyteczne klasy biblioteczne Standardowe pakiety: java.applet - tworzenie apletów java.awt okienka AWT java.beans uniwersalne komponenty java.io operacje wejścia/wyjścia java.lang podstawowe klasy java.math wielkie liczby java.net współpraca z siecią java.rmi przetwarzanie rozproszone java.security bezpieczeństwo java.sql zapytania do baz danych java.text operacje na tekście java.util klasy pomocnicze javax.swing okienka Swing 21

22 UŜyteczne klasy biblioteczne Klasa Object Klasa Object jest nadklasą dla wszystkich obiektów. Zapis class Klasa{.. jest więc równoznaczny z zapisem class Klasa extends Object {. Klasa Object zawiera kilka uŝytecznych metod: clone() tworzy bliźniaczy obiekt. equals(object) porównuje obiekty. finalize() umieszczamy w niej instrukcje zwalniające zasoby uŝywane przez klasę, metoda jest wywoływana przez Garbage Collector przed zwolnieniem obiektu z pamięci. tostring() przedstawia reprezentację obiektu w postaci łańcucha znaków. 22

23 UŜyteczne klasy biblioteczne Klasa String Klasa String reprezentuje łańcuch znaków. KaŜda sekwencja znaków zamknięta cudzysłowami jest interpretowana jako obiekt tej klasy. WaŜniejsze metody: length() zwraca długość łańcucha. charat(int i) zwraca znak z łańcucha z podanego miejsca. equals(string str), equalsignorecase(string str), compareto(string str) porównuje znaki dwóch ciągów. substring( ) grupa metod zwracających podłańcuch. concat(string) lub operator + - zwraca złączenie dwóch łańcuchów. tolowercase(), touppercase() - konwersja na małe, wielkie litery. replace(znak1, znak2) zastępowanie znaków w łańcuchu. 23

24 UŜyteczne klasy biblioteczne Klasa Math potęgowanie i pierwiastkowanie pow(a,b), sqrt() funkcje trygonometryczne cos(), sin(), tan() logarytm naturalny log(a) zaokrąglanie w górę/dól ceil(a), floor(a) zaokrąglanie do liczby całkowitej round(a), rint(a) wartość bezwzględna abs(a) Stałe - PI i E Niektóre funkcje mogą zwrócić specjalne wartości dla liczb zmiennoprzecinkowych: nie liczba: NaN nieskończoność: POSITIVE_INFINITY, NEGATIVE_INFINITY 24

25 UŜyteczne klasy biblioteczne Typy danych odnośnikowych W pakiecie java.lang.* znajdują się następujące klasy typów danych: Boolean, Byte, Short, Integer, Long, Float, Double Character Dają one moŝliwość przechowywania pola o wartości odpowiadającego typu podstawowego UmoŜliwiają konwersję na inne typy danych np. intvalue() - konwersja do int floatvalue() - konwersja do typu float longvalue() - konwersja do typu long parseint() - w klasie Integer, parsowanie obiektu String do typu int parsedouble() - w klasie Double, parsowanie String do double 25

26 Sprawdzanie równości obiektów Działanie operatorów == i!= w stosunku do obiektów moŝe być zaskakujące: public class Rownosc { public static void main(string[] args){ Integer n1 = new Integer(47); Integer n2 = new Integer(47); System.out.println(n1 == n2); Wykonanie klasy Rownosc da wynik: false Dlaczego? MoŜe się wydawać, Ŝe obiekty n1 i n2 są takie same. Ale n1 i n2 to nie obiekty, tylko referencje do obiektów (dwie, róŝne). Aby porównać zawartość obiektów, naleŝy uŝyć specjalnej metody equals() zdefiniowanej dla wszystkich obiektów (ale nie dla typów podstawowych, dla których dobrze działają == i!=): public class Rownosc { public static void main(string[] args) { Integer n1 = new Integer(47); Integer n2 = new Integer(47); System.out.println(n1.equals(n2)); 26

27 Wyjątki Wyjątek to zdarzenie, które moŝe się pojawić podczas wykonywania programu, powodujące przerwanie normalnego przepływu sterowania (wykonywania kolejnych instrukcji). Wyjątki pojawiają się kiedy nastąpiła jakaś nieprawidłowa sytuacja (np. dzielenie przez 0), która moŝe wymagać dodatkowego obsłuŝenia. Hierarchia klas wyjątków: 27

28 Wyjątki Zalety wyjątków: oddzielenie kodu obsługującego błędy, propagowanie błędu przez kolejne metody, moŝliwość grupowania błędów. 28

29 Wyrzucanie wyjątków UŜytkownik moŝe wyrzucać wyjątki za pomocą słowa kluczowego throw if(str.equals( koniec )) { throw new Exception( Zglaszam wyjatek ); Jeśli wyjątek nie jest obsłuŝony wewnątrz metody wymagana jest deklaracja jego wyrzucenia przez tę metodę. SłuŜy do tego słowo kluczowe throws: int read() throws java.io.ioexception {... 29

30 Przechwytywanie wyjątków Wyjątek moŝna wyrzucić dalej (słowo kluczowe throw) lub przechwycić za pomocą instrukcji try-catch int metoda(string str) throws Exception { try { Integer.parseInt(str); catch(numberformatexception e){ throw new Exception(); // lub obsłuŝyć. Po jednym bloku try, moŝe znajdować się kilka bloków catch. Bardzo uŝyteczną metodą w przypadku wyjątków jest metoda: public void printstacktrace(), która wypisuje na standardowe wyjście stos zgłoszeń wyjątków przez kolejne metody aŝ do miejsca, w którym jest wywołana. Jest to niezmiernie pomocne przy wyszukiwaniu powodu błędów w rozbudowanych aplikacjach, kiedy wyjątki są przekazywane przez dziesiątki metod. 30

31 Przechwytywanie wyjątków WaŜna jest kolejność bloków catch, gdyŝ wyjątek zostanie obsłuŝony przez pierwszy dobrze pasujący blok catch. Zaczynamy od obsługi wyjątków szczegółowych a następnie przechodzimy do typów ogólniejszych. try{ Integer.parseInt(str); catch(numberformatexception e){ catch(runtimeexception e){ try{ Integer.parseInt(str); catch(runtimeexception e){ catch(numberformatexception e){ java.lang.object java.lang.throwable java.lang.exception java.lang.runtimeexception java.lang.illegalargumentexception java.lang.numberformatexception 31

32 Przechwytywanie wyjątków finally Często mamy taki fragment kodu, który chcielibyśmy wykonać niezaleŝnie od tego czy w bloku try został zgłoszony wyjątek czy teŝ nie (np. zamknięcie operacji na pliku). Aby to osiągnąć, na końcu procedur wyjątków umieszcza się sekcję finally: try{ //Obszar który moŝe wyrzucić wyjątki A, B, C catch (A a){ // Obsluga dla wyjatku A catch (B b){ // Obsluga dla wyjatku B catch (C c){ //Obsluga dla wyjatku C finally{ //Czynnosci, ktore sa wykonywane za kazdym razem 32

33 GUI Java dostarcza dwa graficzne interfejsy uŝytkownika, będące częścią Java Foundation Classes: Abstract Window Toolkit (AWT), Swing. Pakiety AWT i Swing zawierają dwie podstawowe klasy: Component zawierającą metody dostępu do komponentów graficznych oraz metody pozwalające na zmianę ich właściwości, Container podklasa Component, dostarczająca tzw. pojemników, czyli obiektów grupujących komponenty. Istnieją dwa podstawowe pojemniki (klasy): Window definiujący okno, które będzie wyświetlane np. jako część aplikacji, Panel musi być częścią innego pojemnika, np. apletu lub okna. 33

34 GUI Podklasami Window są klasy Dialog i Frame. Klasa Frame pozwala na zdefiniowanie głównego okna, określenie jego tytułu, a takŝe zmianę jego wyglądu oraz rozmiaru. Klasa Dialog jest klasą która tworzy okno dialogowe i musi mieć swojego właściciela. Komponenty (takŝe inne pojemniki) do pojemników nadrzędnych przypisujemy metodą add();. Przykład: import java.awt.*; public static void main(string args[]){ Frame f = new Frame( Tytuł okna ); f.setsize(200,100); Button b = new Button( OK ); f.add(b); f.setvisible(true); 34

35 Zarządzanie układem Do rozmieszczenia komponentów w pojemnikach wykorzystuje się klasy zarządzające układem (ang. Layout Manager). BorderLayout domyślny układ dla pojemnika Frame; powoduje ułoŝenie elementów poprzez przyciągnięcie ich do następujących rejonów: NORTH, SOUTH, WEST, EAST, CENTER(domyślne) Button b2 = new Button( OK2 ); f.add(b, BorderLayout.SOUTH); 35

36 Zarządzanie układem FlowLayout jest domyślnym układem dla pojemnika Panel. Komponenty dodawane są od lewej do prawej i mają rozmiary domyślne (nie są powiększane na cały pojemnik) public static void main(string args[]){ Frame f = new Frame( Tytuł okna ); f.setsize(200,100); f.setlayout(new FlowLayout()); //zmieniamy układ Button b = new Button( OK ); f.add(b); Button b2 = new Button( OK2 ); f.add(b2); f.setvisible(true); 36

37 Panele public static void main(string args[]){ Frame f = new Frame( Tytuł okna ); f.setsize(200,100); Panel p = new Panel(); Button b = new Button( OK ); p.add(b); //dodanie do panela f.add(p, BorderLayout.NORTH); Button b2 = new Button( OK2 ); f.add(b2, BorderLayout.SOUTH); f.setvisible(true); 37

38 Komponenty tekstowe w AWT AWT dostarcza następujące komponenty tekstowe: etykieta: Label pole edycji: TextField duŝe pole edycji: TextArea Frame f = new Frame( Tytuł okna ); Panel p = new Panel(); Label lbl = new Label( Etykieta ); p.add(lbl); TextField tf = new TextField( Pole edycji ); p.add(tf); TextArea ta = new TextArea(,10,30); p.add(ta); f.add(p); f.setvisible(true); 38

39 Komponenty wyboru w AWT AWT dostarcza następujące komponenty wyboru: przyciski wyboru: Checkbox lista rozwijana: Choice lista wyboru: List Checkbox check = new Checkbox("checkbox"); panel.add(check); Choice ch = new Choice(); ch.add("pierwszy"); ch.add("drugi"); ch.add("trzeci"); panel.add(ch); List lst = new List(4); lst.add("pierwszy"); lst.add("drugi"); lst.add("trzeci"); panel.add(lst); 39

40 Pakiet Swing Swing to graficzny interfejs uŝytkownika Java drugiej generacji. Został opracowany w trakcie istnienia Javy 1.1 i włączony do JDK 1.2 jako podstawowy interfejs graficzny. Swing nie uŝywa narzędzi systemowych do tworzenia elementów interfejsu, oparty jest na wewnętrznych klasach Javy, co zapewnia pełną niezaleŝność od platformy (lekkie komponenty). Hierarchia klas Swing jest prawie identyczna z hierarchią klas AWT. Nazewnictwo klas: JComponent, JButton, JFrame. 40

41 Pakiet Swing Okna dialogowe słuŝące do komunikacji z uŝytkownikiem. Klasa JOptionPane showmessagedialog(...) showconfirmdialog(...) JOptionPane.YES_OPTION JOptionPane.NO_OPTION JOptionPane.CANCEL_OPTION Klasa JFileChooser 41

42 Obsługa zdarzeń Komponenty i inne obiekty GUI komunikują się ze sobą poprzez wysyłanie i odbieranie zdarzeń. Zdarzenia (pochodne EventObject) wysyłane są przez dany obiekt do jednego lub kilku innych obiektów, tzw. multicast. Obiekty odbierają zdarzenia poprzez metody je obsługujące (tzw. event handlers). Odbiorcy zdarzeń (klasy implementujące EventListener) deklarują jakimi zdarzeniami są zainteresowane. słuchacz1 Button1 Button2 Text słuchacz2 słuchacz3 42

43 NajwaŜniejsze zdarzenia w GUI W Javie istnieje wiele zdarzeń oraz interfejsów je obsługujących (na róŝnych poziomach w hierarchii klas). Z punktu widzenia GUI najwaŝniejsze zdarzenia to: - zdarzenia wysyłane przez komponenty: ActionEvent - zdarzenia wysyłane przez myszkę: MouseEvent - zdarzenia wysyłane przez klawiaturę: KeyEvent - zdarzenia wysyłane przez okno: WindowEvent Odpowiadają im następujące interfejsy, odbierające zdarzenia: - ActionListener - MouseListener i MouseMotionListener - WindowListener (WindowAdapter) 43

44 Window Listener Przykład zamykania aplikacji: import java.awt.*; import java.awt.event.*; public class Start { public static void main(string args[]) { Frame f = new Frame("tytul okna"); SluchaczOkna lst = new SluchaczOkna (); f.addwindowlistener(lst); f.setvisible(true); class SluchaczOkna extends WindowAdapter { public void windowclosing(windowevent e) { System.exit(0); 44

45 Action Listener Przykład obsługi przycisku: import java.awt.event.*; import java.awt.*; public class Start{ public Start() { Frame frame = new Frame(); frame.setsize(500, 400); Button btn = new Button("Klik"); btn.addactionlistener(new Sluchacz()); frame.add(btn); frame.setvisible(true); //inaczej: //Sluchacz sl = new Sluchacz(); //btn.addactionlistener(sl); public static void main(string[] args) { Start str = new Start(); class Sluchacz implements ActionListener { public void actionperformed(actionevent e){ System.out.println("Wcisnales przycisk"); 45

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: otwórz okienko. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

Java: otwórz okienko. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak Java: otwórz okienko Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak PLAN WYKŁADU klasy wewnętrzne, lokalne i anonimowe biblioteka AWT zestaw Swing JFrame JPanel komponenty obsługa zdarzeń

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

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

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

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

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

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

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

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

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

Dziedziczenie. dr Jarosław Skaruz

Dziedziczenie. dr Jarosław Skaruz Dziedziczenie dr Jarosław Skaruz http://jareks.ii.uph.edu.pl jaroslaw@skaruz.com Dziedziczenie specjalizacja Dziedziczenie generalizacja Generalizacja-specjalizacja jest takim związkiem pomiędzy klasami,

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

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

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 7 Marcin Młotkowski 8 kwietnia 2015 Plan wykładu Z życia programisty, część 1 1 Z życia programisty, część 1 2 3 Z życia programisty, część 2 Model View Controller MVC w

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

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

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

dziedziczenie - po nazwie klasy wystąpią słowa: extends nazwa_superklasy

dziedziczenie - po nazwie klasy wystąpią słowa: extends nazwa_superklasy PODSTAWOWE ELEMENTY JĘZYKA JAVA TYPY DANYCH, OPERATORY I INSTRUKCJE 1. Definicja klasy, dziedziczenie, implementowanie metod interfejsów class nazwa_klasy //ciało klasy Klasa: przed słowem class moŝe wystąpić

Bardziej szczegółowo

Programowanie graficznych interfejsów użytkownika

Programowanie graficznych interfejsów użytkownika Programowanie obiektowe Programowanie graficznych interfejsów użytkownika Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Programowanie

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

Kurs programowania. Wykład 4. Wojciech Macyna. 23 marca 2016

Kurs programowania. Wykład 4. Wojciech Macyna. 23 marca 2016 Wykład 4 23 marca 2016 Graficzny interfejs użytkownika - GUI W Javie możemy skorzystać z dwóch bibliotek do tworzenia graficznych interfejsów: AWT (Abstract Windowing Toolkit) podstawowa biblioteka będaca

Bardziej szczegółowo

Tworzenie elementów graficznych

Tworzenie elementów graficznych Tworzenie elementów graficznych Elementy graficzne w Javie pozwalające tworzyć Graficzny Interfejs Użytkownika (GUI) możemy podzielić na dwie grupy: AWT (Abstract Window Toolkit) bibliotek klas służąca

Bardziej szczegółowo

Kurs WWW. Paweł Rajba. pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/

Kurs WWW. Paweł Rajba. pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/ Paweł Rajba pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/ Spis treści Wprowadzenie Automatyczne ładowanie klas Składowe klasy, widoczność składowych Konstruktory i tworzenie obiektów Destruktory i

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

Marcin Luckner Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych

Marcin Luckner Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych Marcin Luckner Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych mluckner@mini.pw.edu.pl http://www.mini.pw.edu.pl/~lucknerm Programy w Javie składają się z pakietów Pakiety zawierają definicje

Bardziej szczegół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

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

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

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

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h]

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h] 1. Typy. Java jest językiem programowania z silnym systemem kontroli typów. To oznacza, że każda zmienna, atrybut czy parametr ma zadeklarowany typ. Kompilator wylicza typy wszystkich wyrażeń w programie

Bardziej szczegółowo

Klasy abstrakcyjne, interfejsy i polimorfizm

Klasy abstrakcyjne, interfejsy i polimorfizm Programowanie obiektowe 12 kwietnia 2011 Organizacyjne Klasówka będzie 20 IV 2011. Sale jeszcze są pertraktowane. Materiał do wyjątków włącznie. Można mieć swoje materiały nieelektroniczne. Wywołanie z

Bardziej szczegółowo

Aplikacje Internetowe. Najprostsza aplikacja. Komponenty Javy. Podstawy języka Java

Aplikacje Internetowe. Najprostsza aplikacja. Komponenty Javy. Podstawy języka Java Aplikacje Internetowe Podstawy języka Java Najprostsza aplikacja class Hello { public static void main(string[] args) { System.out.println("Hello World!"); Komponenty Javy JRE Java Runtime Environment

Bardziej szczegółowo

Dziedziczenie. Tomasz Borzyszkowski

Dziedziczenie. Tomasz Borzyszkowski Dziedziczenie Tomasz Borzyszkowski Podstawy Zobacz: Dziedzictwo1.java Dziedzictwo2.java Dziedziczenie jest jedną z podstawowych cech OOP ponieważ umożliwia łatwe implementowanie klasyfikacji hierarchicznych.

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

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

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

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

Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016

Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016 Wstęp - wykład 0 22 lutego 2016 Historia Simula 67 język zaprojektowany do zastosowan symulacyjnych; Smalltalk 80 pierwszy język w pełni obiektowy; Dodawanie obiektowości do języków imperatywnych: Pascal

Bardziej szczegółowo

Programowanie zdarzeniowe

Programowanie zdarzeniowe Programowanie zdarzeniowe I. Podstawy obsługi zdarzeń Małgorzata Prolejko ZDA JA16Z03 Plan Pojęcie zdarzenia Klasy i obiekty słuchaczy Rejestracja słuchaczy Obsługa naciśnięcia przycisku Rozpoznawanie

Bardziej szczegółowo

Programowanie graficznego interfejsu użytkownika. Wykład 8. Maciej Wołoszyn 10 maja 2006

Programowanie graficznego interfejsu użytkownika. Wykład 8. Maciej Wołoszyn 10 maja 2006 Programowanie graficznego interfejsu użytkownika Wykład 8 Maciej Wołoszyn mailto:woloszyn@fatcat.ftj.agh.edu.pl 10 maja 2006 Spis treści 1 JFC/Swing 1 1.1 Prosty przykład.................................

Bardziej szczegółowo

1. Co będzie wynikiem wykonania poniŝszych instrukcji? g2d.gettransform().scale(1, -1); g2d.gettransform().translate(4, -8); g2d.drawline(4, 0, 4, 4);

1. Co będzie wynikiem wykonania poniŝszych instrukcji? g2d.gettransform().scale(1, -1); g2d.gettransform().translate(4, -8); g2d.drawline(4, 0, 4, 4); 1. Co będzie wynikiem wykonania poniŝszych instrukcji? g2d.gettransform().scale(1, -1); g2d.gettransform().translate(4, -8); g2d.drawline(4, 0, 4, 4); a) b) c) d) 2. Jaki będzie wynik kompilacji i wykonania

Bardziej szczegółowo

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

Języki i metody programowania Java. Wykład 2 (część 2) Języki i metody programowania Java INF302W Wykład 2 (część 2) Autor Dr inż. Zofia Kruczkiewicz 1 Struktura wykładu 1. Identyfikacja danych reprezentowanych przez klasy podczas opracowania koncepcji prostego

Bardziej szczegół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

Platformy Programistyczne Podstawy języka Java

Platformy Programistyczne Podstawy języka Java Platformy Programistyczne Podstawy języka Java Agata Migalska 6 maja 2014 Plan wykładu 1 Sztuka wysławiania się w języku Java 2 Cały świat jest obiektem 3 Kolekcje 4 Zmienne i metody statyczne 5 Słowo

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

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

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

Enkapsulacja, dziedziczenie, polimorfizm

Enkapsulacja, dziedziczenie, polimorfizm 17 grudnia 2008 Spis treści I Enkapsulacja 1 Enkapsulacja 2 Spis treści II Enkapsulacja 3 Czym jest interfejs Jak definuje się interfejs? Rozszerzanie interfejsu Implementacja interfejsu Częściowa implementacja

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

Dziedziczenie jednobazowe, poliformizm

Dziedziczenie jednobazowe, poliformizm Dziedziczenie jednobazowe, poliformizm 1. Dziedziczenie jednobazowe 2. Polimorfizm część pierwsza 3. Polimorfizm część druga Zofia Kruczkiewicz, ETE8305_6 1 Dziedziczenie jednobazowe, poliformizm 1. Dziedziczenie

Bardziej szczegółowo

Programowanie w Javie Wykład 6 Okienka w Javie (AWT)

Programowanie w Javie Wykład 6 Okienka w Javie (AWT) Programowanie w Javie Wykład 6 Okienka w Javie (AWT) Płock 2014/2015 Wprowadzenie do AWT AWT Abstract Window Toolkit, wykorzystywany do budowy graficznych interfejsów użytkownika w Javie AWT do obsługi

Bardziej szczegółowo

Wielowątkowość. Programowanie w środowisku rozproszonym. Wykład 1.

Wielowątkowość. Programowanie w środowisku rozproszonym. Wykład 1. Wielowątkowość Programowanie w środowisku rozproszonym. Wykład 1. Informacje organizacyjne Wymiar godzin: W-30, LAB-15 Zaliczenie wykonanie kilku programów i ich zaliczenie (w trakcie zajęć laboratoryjnych)

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

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

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

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

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

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

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

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

Informatyka I. Dziedziczenie. Nadpisanie metod. Klasy abstrakcyjne. Wskaźnik this. Metody i pola statyczne. dr inż. Andrzej Czerepicki

Informatyka I. Dziedziczenie. Nadpisanie metod. Klasy abstrakcyjne. Wskaźnik this. Metody i pola statyczne. dr inż. Andrzej Czerepicki Informatyka I Dziedziczenie. Nadpisanie metod. Klasy abstrakcyjne. Wskaźnik this. Metody i pola statyczne. dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2017 Dziedziczenie klas

Bardziej szczegółowo

Wykład 6: Dziedziczenie

Wykład 6: Dziedziczenie Wykład 6: Dziedziczenie Dziedziczenie Jeden z filarów obiektowości. Budowa jednej klasy na bazie drugiej, przez dodawanie/przesłanianie jej składowych: nad-klasa klasa bazowa pod-klasa klasa pochodna od

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

Informacje ogólne. Karol Trybulec p-programowanie.pl 1. 2 // cialo klasy. class osoba { string imie; string nazwisko; int wiek; int wzrost;

Informacje ogólne. Karol Trybulec p-programowanie.pl 1. 2 // cialo klasy. class osoba { string imie; string nazwisko; int wiek; int wzrost; Klasy w C++ są bardzo ważnym narzędziem w rękach programisty. Klasy są fundamentem programowania obiektowego. Z pomocą klas będziesz mógł tworzyć lepszy kod, a co najważniejsze będzie on bardzo dobrze

Bardziej szczegółowo

Tworzenie i obsługa graficznego interfejsu uŝytkownika

Tworzenie i obsługa graficznego interfejsu uŝytkownika Tworzenie i obsługa graficznego interfejsu uŝytkownika Programowanie w środowisku rozproszonym. Wykład 3. Aplety aplikacje uruchamiane w środowisku przeglądarki - przykład import java.applet.applet; import

Bardziej szczegółowo

Java - interfejs graficzny

Java - interfejs graficzny Java - interfejs graficzny Pakiet Swing Pakiet Swing przygotował: pawel@kasprowski.pl Czym jest Swing? Rozszerzenie AWT (Abstract Windows Toolkit) do tworzenia GUI (Graphical User Interface) w Javie import

Bardziej szczegółowo

Technologie i usługi internetowe cz. 2

Technologie i usługi internetowe cz. 2 Technologie i usługi internetowe cz. 2 Katedra Analizy Nieliniowej, WMiI UŁ Łódź, 15 luty 2014 r. 1 Programowanie obiektowe Programowanie obiektowe (z ang. object-oriented programming), to paradygmat programowania,

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

Wykład 5 Okna MDI i SDI, dziedziczenie

Wykład 5 Okna MDI i SDI, dziedziczenie Wykład 5 Okna MDI i SDI, dziedziczenie Autor: Zofia Kruczkiewicz Zagadnienia 1. Aplikacja wielookienkowa. Zakładanie projektu typu CLR Windows Forms 1.1. Aplikacja typu MDI 1.2. Aplikacja typu SDI 2. Dziedziczenie

Bardziej szczegółowo

Platformy Programistyczne Wykład z Javy dla zaawansowanych

Platformy Programistyczne Wykład z Javy dla zaawansowanych Platformy Programistyczne Wykład z Javy dla zaawansowanych Agata Migalska 20 maja 2014 Plan wykładu 1 Polimorfizm i dziedziczenie 2 Życie i śmierć obiektu 3 Poziomy oraz modyfikatory dostępu 4 Obsługa

Bardziej szczegółowo

Kontenery i komponenty graficzne

Kontenery i komponenty graficzne JAVA Kontenery i komponenty graficzne Bibliografia: JAVA Szkoła programowania, D. Trajkowska Ćwiczenia praktyczne JAVA. Wydanie III,M. Lis Opracował: Andrzej Nowak Kontenery Aplikacja okienkowa składa

Bardziej szczegółowo

Klasa jest nowym typem danych zdefiniowanym przez użytkownika. Najprostsza klasa jest po prostu strukturą, np

Klasa jest nowym typem danych zdefiniowanym przez użytkownika. Najprostsza klasa jest po prostu strukturą, np Klasy Klasa jest nowym typem danych zdefiniowanym przez użytkownika Wartości takiego typu nazywamy obiektami Najprostsza klasa jest po prostu strukturą, np struct Zespolona { Klasy jako struktury z operacjami

Bardziej szczegółowo

Język Java część 2 (przykładowa aplikacja)

Język Java część 2 (przykładowa aplikacja) Programowanie obiektowe Język Java część 2 (przykładowa aplikacja) Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski @ pwr.wroc.pl Java Java przykładowa

Bardziej szczegółowo

Wykład 8: klasy cz. 4

Wykład 8: klasy cz. 4 Programowanie obiektowe Wykład 8: klasy cz. 4 Dynamiczne tworzenie obiektów klas Składniki statyczne klas Konstruktor i destruktory c.d. 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD

Bardziej szczegół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

Programowanie w Javie - wykład 3

Programowanie w Javie - wykład 3 Pakiety import Klasy dziedziczenie Programowanie w Javie - wykład 3 Treści prezentowane w wykładzie zostały oparte o: Barteczko, JAVA Programowanie praktyczne od podstaw, PWN, 2014 http://docs.oracle.com/javase/8/docs/

Bardziej szczegółowo

2. Składnia, środowisko i konwencje w Javie

2. Składnia, środowisko i konwencje w Javie Gdańsk, 2014 Ogólnie o Javie Środowisko Java jest językiem programowania, którego podstawowym celem jest realizacja zasady write once, run anywhere. Oznacza to możliwość wykonania tego samego programu,

Bardziej szczegółowo

Kompozycja i dziedziczenie klas

Kompozycja i dziedziczenie klas Związki między klasami: jest i zawiera Programowanie obiektowe Przkład: Pojazd Kompozycja i dziedziczenie klas Silnik Pojazd silnikowy Rower Wóz konny Paweł Rogaliński Instytut Informatyki, Automatyki

Bardziej szczegółowo

1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie?

1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie? 1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie? a) konstruktor b) referencje c) destruktor d) typy 2. Które z poniższych wyrażeń są poprawne dla klasy o nazwie

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

PHP 5 język obiektowy

PHP 5 język obiektowy PHP 5 język obiektowy Wprowadzenie Klasa w PHP jest traktowana jak zbiór, rodzaj różnych typów danych. Stanowi przepis jak stworzyć konkretne obiekty (instancje klasy), jest definicją obiektów. Klasa reprezentuje

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

Obiekt klasy jest definiowany poprzez jej składniki. Składnikami są różne zmienne oraz funkcje. Składniki opisują rzeczywisty stan obiektu.

Obiekt klasy jest definiowany poprzez jej składniki. Składnikami są różne zmienne oraz funkcje. Składniki opisują rzeczywisty stan obiektu. Zrozumienie funkcji danych statycznych jest podstawą programowania obiektowego. W niniejszym artykule opiszę zasadę tworzenia klas statycznych w C#. Oprócz tego dowiesz się czym są statyczne pola i metody

Bardziej szczegółowo

Dziedziczenie. Streszczenie Celem wykładu jest omówienie tematyki dziedziczenia klas. Czas wykładu 45 minut.

Dziedziczenie. Streszczenie Celem wykładu jest omówienie tematyki dziedziczenia klas. Czas wykładu 45 minut. Dziedziczenie Streszczenie Celem wykładu jest omówienie tematyki dziedziczenia klas. Czas wykładu 45 minut. Rozpatrzmy przykład przedstawiający klasy Student oraz Pracownik: class Student class Pracownik

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

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

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

Wykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz

Wykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz Wykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz Zagadnienia 1. Delegaty wiązane, właściwości indeksowane 2. Delegaty niewiązane 3. Nowa wersja kalkulatora, delegaty

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

Programowanie 2. Język C++. Wykład 3.

Programowanie 2. Język C++. Wykład 3. 3.1 Programowanie zorientowane obiektowo... 1 3.2 Unie... 2 3.3 Struktury... 3 3.4 Klasy... 4 3.5 Elementy klasy... 5 3.6 Dostęp do elementów klasy... 7 3.7 Wskaźnik this... 10 3.1 Programowanie zorientowane

Bardziej szczegółowo

SWING c.d. przydatne narzędzia: JFileChooser, JOptionPane. drag'n drop, menu kontekstowe.

SWING c.d. przydatne narzędzia: JFileChooser, JOptionPane. drag'n drop, menu kontekstowe. SWING c.d. ZAGADNIENIA: przydatne narzędzia: JFileChooser, JOptionPane. drag'n drop, menu kontekstowe. MATERIAŁY: http://docs.oracle.com/javase/tutorial/uiswing/dnd/ http://th-www.if.uj.edu.pl/zfs/ciesla/

Bardziej szczegółowo

Grafika i komunikacja człowiek komputer Laboratorium. Część 1: Wstęp do grafiki

Grafika i komunikacja człowiek komputer Laboratorium. Część 1: Wstęp do grafiki UNIWERSYTET RZESZOWSKI KATEDRA INFORMATYKI Opracował: mgr inż. Przemysław Pardel, dr hab. Bogdan Kwolek v1.01 2010 Grafika i komunikacja człowiek komputer Laboratorium Część 1: Wstęp do grafiki ZAGADNIENIA

Bardziej szczegółowo

10. Programowanie obiektowe w PHP5

10. Programowanie obiektowe w PHP5 Ogólnie definicja klasy wygląda jak w C++. Oczywiście elementy składowe klasy są zmiennymi PHP, stąd nieśmiertelne $. Warto zauważyć, że mogą one mieć wartość HHH mgr inż. Grzegorz Kraszewski TECHNOLOGIE

Bardziej szczegółowo

Klasy abstrakcyjne i interfejsy

Klasy abstrakcyjne i interfejsy Klasy abstrakcyjne i interfejsy Streszczenie Celem wykładu jest omówienie klas abstrakcyjnych i interfejsów w Javie. Czas wykładu 45 minut. Rozwiązanie w miarę standardowego zadania matematycznego (i nie

Bardziej szczegółowo

Programowanie Obiektowe GUI

Programowanie Obiektowe GUI Programowanie Obiektowe GUI Swing Celem ćwiczenia jest ilustracja wizualnego tworzenia graficznego interfejsu użytkownika opartego o bibliotekę Swing w środowisku NetBeans. Ponadto, ćwiczenie ma na celu

Bardziej szczegółowo

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

Język JAVA podstawy. Wykład 4, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy Wykład 4, część 1 1 Język JAVA podstawy Plan wykładu: 1. Podstawy modelowania obiektowego 2. Konstruktory 3. Dziedziczenie, związki pomiędzy klasami, UML 4. Polimorfizm 5. Klasy abstrakcyjne

Bardziej szczegółowo

Polimorfizm. dr Jarosław Skaruz

Polimorfizm. dr Jarosław Skaruz Polimorfizm dr Jarosław Skaruz http://jareks.ii.uph.edu.pl jaroslaw@skaruz.com O czym będzie? finalne składowe klasy abstrakcyjne interfejsy polimorfizm Finalne składowe Domyślnie wszystkie pola i metody

Bardziej szczegółowo

PODEJŚCIE OBIEKTOWE. Przykład 1 metody i atrybuty statyczne

PODEJŚCIE OBIEKTOWE. Przykład 1 metody i atrybuty statyczne Przykład 1 metody i atrybuty statyczne public class Napis1 { static String wynik; public static void Inicjuj() {wynik = ""; PODEJŚCIE OBIEKTOWE public static void Dopisz_do_wyniku(char ch) { wynik+="\nkod

Bardziej szczegółowo

Definiowanie własnych klas

Definiowanie własnych klas Programowanie obiektowe Definiowanie własnych klas Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski @ pwr.wroc.pl Definiowanie własnych klas Autor:

Bardziej szczegółowo