Programowanie Obiektowe Java

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

Download "Programowanie Obiektowe Java"

Transkrypt

1 Programowanie Obiektowe Java Małgorzata Janik Zakład Fizyki Jądrowej

2 Projekt W drugim tygodniu zajęć należy wysłać prowadzącemu z informacją o: Członkach zespołu Pomyśle na projekt Temat projektu powinien zostać uzgodniony z prowadzącym laboratoria przed przygotowaniem specyfikacji Przykłady tematów na stronie Zawsze można wybrać własny projekt Tematy w danej grupie nie mogą się powtarzać (kto pierwszy ten lepszy) Wystarczy OK od prowadzącego Projekt jest realizowany zespołowo, ale uzyskana ocena jest indywidualna. Wkład każdego z członków zespołu będzie oceniany indywidualnie przez prowadzącego. 2/30

3 Powtórzenie Który element Javy sprawia, że stosunkowo łatwo odpalać programy na różnych platformach / systemach operacyjnych?

4 Maszyna Wirtualna

5 Struktura Programu Pakiety i Import Struktura Klasy Instancja klasy Metody

6 Struktura programu package... //deklaracja pakietu, opcjonalna ale zalecana import... // deklaracje importu public class Punkt { //deklaracje konstruktorów Punkt (double parametr1, double parametr2){ x = parametr1; y = parametr2; //deklaracje metod public String Wypisz(){ String text; text = "Wspolrzedne ("+ x + ", " + y + ")"; return text; //deklaracje pól double x, y; public class KlasaStartowa { public static void main(string[] args) { Punkt p1 = new Punkt (30,30); System.out.println(p1.Wypisz()); //funkcja główna

7 Struktura programu package... //deklaracja pakietu, opcjonalna ale zalecana import... // deklaracje importu public class Punkt { //deklaracje konstruktorów Punkt (double parametr1, double parametr2){ x = parametr1; y = parametr2; //deklaracje metod public String Wypisz(){ String text; text = "Wspolrzedne ("+ x + ", " + y + ")"; return text; //deklaracje pól double x, y; public class KlasaStartowa { public static void main(string[] args) { Punkt p1 = new Punkt (30,30); System.out.println(p1.Wypisz()); //funkcja główna

8 Pakiety Pakiet zbiór powiązanych klas i interfejsów, który pozwala na kontrolę dostępu i zapewnia hierarchiczny system nazewnictwa. Przykładami są: javax.swing, java.lang, java.io. pełna lista standardowych pakietów w dokumentacji 8/98

9 Pakiety programy w Javie są złożone z zestawów pakietów, zawierających definicje klas i interfejsów typ zadeklarowany w pakiecie jest dostępny na zewnątrz pakietu tylko gdy został zadeklarowany jako publiczny (public) nazwa pakietu powinna być niepowtarzalna i jednocześnie określać jego charakter. zaleca się by określić kraj pochodzenia pakietu przez standardowe, dwuliterowe kody ISO, np.. pl.edu.pw.fizyka.pojava.wyklad com.sun.examples pakiet składa się z kompilowalnych plików, które automatycznie mają dostęp do wszystkich typów deklarowanych w pakiecie jeśli plik nie zawiera deklaracji pakietu to domyślnie należy do pakietu unnamed/default 9/98

10 import By odnieść się do klasy MojaKlasa z paczki lab.pw możemy podać jej pełną (kwalifikowaną) nazwę: lab.pw.mojaklasa mk = new lab.pw.mojaklasa(); To jest konieczne, gdy w kilku różnych paczkach mamy klasę o tej samej nazwie W zwykłych przypadkach to nie jest wygodne; możemy skrócić ilość pisania używając dyrektywy import import lab.pw.mojaklasa; Wtedy w programie już możemy używać nazwy MojaKlasa. Dyrektywa import jest bardzo często wykorzystywana gdy wykorzystujemy dostępne API Wtedy możemy porównać ją do znanego nam #include z C/C++ 10/98

11 Pliki nagłówkowe W C/C++ używaliśmy plików nagłówkowych (.h lub.hpp) zawierające opis interfejsu modułu: Deklaracje zmiennych, funkcji, klas, w oddzielnym pliku itp. W Javie (ani w C#) nie występują.

12 Struktura programu package... //deklaracja pakietu, opcjonalna ale zalecana import... // deklaracje importu public class Punkt { //deklaracje konstruktorów Punkt (double parametr1, double parametr2){ x = parametr1; y = parametr2; //deklaracje metod public String Wypisz(){ String text; text = "Wspolrzedne ("+ x + ", " + y + ")"; return text; //deklaracje pól double x, y; public class KlasaStartowa { public static void main(string[] args) { Punkt p1 = new Punkt (30,30); System.out.println(p1.Wypisz()); //funkcja główna

13 Struktura klasy class NazwaKlasy { //deklaracje konstruktorów NazwaKlasy(lista parametrów){ //treść/zawartość konstruktora //deklaracje metod Typ1 metoda1(lista parametrów) { //treść/zawartość metody1 return obiekttyp1;... //deklaracje pól Typ pole1;... Typ polen;

14 Struktura programu package... //deklaracja pakietu, opcjonalna ale zalecana import... // deklaracje importu public class Punkt { //deklaracje konstruktorów Punkt (double parametr1, double parametr2){ x = parametr1; y = parametr2; //deklaracje metod public String Wypisz(){ String text; text = "Wspolrzedne ("+ x + ", " + y + ")"; return text; //deklaracje pól double x, y; Przykład 1: tworzenie instancji klasy public class KlasaStartowa { public static void main(string[] args) { Punkt p1 = new Punkt (30,30); System.out.println(p1.Wypisz()); //funkcja główna

15 Tworzenie obiektów NazwaKlasy zmienna; //deklaracja zmiennej/referencji zmienna = new NazwaKlasy(argumenty_konstruktora); //tworzenie nowego obiektu przypisanego do referencji Przykład: (tworzenie obiektu klasy Rectangle): Rectangle prostokat; prostakat = new Rectangle(10,10,100,200); Powyższy kod można uprościć, umieszczając deklarację zmiennej i tworzenie obiektu w jednej linii kodu: NazwaKlasy zmienna = new NazwaKlasy(argumenty_konstruktora); Przykład: Rectangle prostokat = new Rectangle(10,10,100,200); 15/98

16 ZAPAMIĘTAJ! Obiekty w Javie zawsze tworzone są przy pomocy operatora new po którym następuje konstruktor (czyli nazwa klasy, której obiekt jest tworzony oraz lista argumentów w nawiasach). KlasaPrzykladowa kp = new KlasaPrzykladowa(); Operator new rezerwuje pamięć dla nowego obiektu oraz wywołuje odpowiedni konstruktor (klasa może mieć więcej niż jeden konstruktor, o tym który zostanie wywołany decyduję zgodność listy argumentów). KlasaPrzykladowa kp2 = new KlasaPrzykladowa(5, tekst2 ); Operator new zwraca referencję do nowo utworzonego obiektu. 16/98

17 Struktura klasy Przykład 2: tworzenie instancji klasy package pl.wyklad1.klasapokazowa; public class KlasaPrzykladowa { // deklaracje konstruktorów KlasaPrzykladowa() { x = 0; tekst = "domyslny"; // deklaracje metod public void setx(int ax) { x = ax; public int getx() { return x; public void wypisz() { System.out.println(x + " " + tekst); // deklaracje pól int x; String tekst; Jak stworzyć instancję tej klasy? public static void main(string[] args) { 17/98

18 Struktura klasy Przykład 2: tworzenie instancji klasy package pl.wyklad1.klasapokazowa; public class KlasaPrzykladowa { // deklaracje konstruktorów KlasaPrzykladowa() { x = 0; tekst = "domyslny"; // deklaracje metod public void setx(int ax) { x = ax; public int getx() { return x; public void wypisz() { System.out.println(x + " " + tekst); // deklaracje pól int x; String tekst; Jak stworzyć instancję tej klasy? public static void main(string[] args) { KlasaPrzykladowa kp = new KlasaPrzykladowa(); kp.wypisz(); 18/98

19 Struktura programu package... //deklaracja pakietu, opcjonalna ale zalecana import... // deklaracje importu public class Punkt { //deklaracje konstruktorów Punkt (double parametr1, double parametr2){ x = parametr1; y = parametr2; Metody = Funkcje składowe //deklaracje metod public String Wypisz(){ String text; text = "Wspolrzedne ("+ x + ", " + y + ")"; return text; //deklaracje pól double x, y; public class KlasaStartowa { public static void main(string[] args) { Punkt p1 = new Punkt (30,30); System.out.println(p1.Wypisz()); //funkcja główna

20 Definiowanie metody [modyfikatory] TypZwracanejWartości nazwametody (TypArgumentu1 zmienna1,,typargumentun zmiennan) { TypZwracanejWartości zwracanawartość; // kod metody, w którym można korzystać ze zmiennych 1..N oraz pól klasy return zwracanawartość; // jeśli metoda void - nic nie zwraca Metody mogą być zadeklarowane bezpośrednio w klasie lub odziedziczone po nadklasach lub interfejsach.

21 Metody public class Punkt extends Object{ double x = 0, y = 0; Punkt (double parametr1, double parametr2){ x = parametr1; y = parametr2; void przesun(double parametr1, double parametr2){ x += parametr1; y += parametr2; double odlegloscodpoczatkuukladu(){ return Math.sqrt(x*x+y*y); String tostring(){ String text; text = "Wspolrzedne ("+ x + ", " + y + ")"; return text;

22 Korzystanie z utworzonych metod public class PunktTest2 { public static void main(string[] args) { Punkt p = new Punkt(0,0); int i=0; while (i<10){ p.przesun(5, 10); double d = p.odlegloscodpoczatkuukladu(); System.out.println(p + " Odległość od (0, 0): " + d); i++;

23 Dziedziczenie Tworzenie klas pochodnych Klasa Object Konstruktory i Super

24 Struktura klasy class NazwaKlasy { //deklaracje konstruktorów NazwaKlasy(lista parametrów){ //treść/zawartość konstruktora //deklaracje metod Typ1 metoda1(lista parametrów) { //treść/zawartość metody1 return obiekttyp1;... //deklaracje pól Typ pole1;... Typ polen;

25 Struktura klasy [modyfikatory] class NazwaKlasy [extends NazwaKlasyNadrzednej] [implements NazwaInterfejsu] { //deklaracje konstruktorów NazwaKlasy(lista parametrów){ //treść/zawartość konstruktora //deklaracje metod Typ1 metoda1(lista parametrów) { //treść/zawartość metody1 return obiekttyp1;... //deklaracje pól Typ pole1;... Typ polen;

26 Struktura klasy [modyfikatory] class NazwaKlasy [extends NazwaKlasyNadrzednej] [implements NazwaInterfejsu] { //deklaracje konstruktorów NazwaKlasy(lista parametrów){ //treść/zawartość konstruktora //deklaracje metod Typ1 metoda1(lista parametrów) { //treść/zawartość metody1 return obiekttyp1;... //deklaracje pól Typ pole1;... Typ polen;

27 Struktura klasy [modyfikatory] class NazwaKlasy [extends NazwaKlasyNadrzednej] [implements NazwaInterfejsu] { //deklaracje konstruktorów extends oznacza dziedziczenie NazwaKlasy(lista parametrów){ = rozszerzenie klasy nadrzędnej //treść/zawartość konstruktora Możemy dziedziczyć po własnych klasach, albo tych zawartych w standardowym API. //deklaracje metod Jeśli chcemy uzyskać spersonalizowaną ramkę, dziedziczymy po JFrame. Jeśli chcemy uzyskać spersonalizowany przycisk, Typ1 metoda1(lista parametrów) { dziedziczymy po JButton. //treść/zawartość metody1 return obiekttyp1;... //deklaracje pól Typ pole1;... Typ polen;

28 Dziedziczenie package pl.wyklad1.klasapokazowa; public class KlasaPrzykladowa { W jaki sposób zdefiniować klasę pochodną, dziedziczącą po już istniejącej? public class KlasaPochodna extends KlasaPrzykladowa { // deklaracje konstruktorów KlasaPrzykladowa() { x = 0; tekst = "domyslny"; public void wypisz() { System.out.println(x + " " + y + " " + tekst); int y = 10; // deklaracje metod public void setx(int ax) { x = ax; public int getx() { return x; public void wypisz() { System.out.println(x + " " + tekst); // deklaracje pól int x; String tekst; public static void main(string[] args) { //KlasaPrzykladowa kp = new KlasaPrzykladowa(); KlasaPochodna kp = new KlasaPochodna(); kp.wypisz(); Efekt? 28/98

29 Dziedziczenie package pl.wyklad1.klasapokazowa; public class KlasaPrzykladowa { W jaki sposób zdefiniować klasę pochodną, dziedziczącą po już istniejącej? public class KlasaPochodna extends KlasaPrzykladowa { // deklaracje konstruktorów KlasaPrzykladowa() { x = 0; tekst = "domyslny"; public void wypisz() { System.out.println(x + " " + y + " " + tekst); int y = 10; // deklaracje metod public void setx(int ax) { x = ax; public int getx() { return x; public void wypisz() { System.out.println(x + " " + tekst); // deklaracje pól int x; String tekst; public static void main(string[] args) { //KlasaPrzykladowa kp = new KlasaPrzykladowa(); KlasaPochodna kp = new KlasaPochodna(); kp.wypisz(); 0 10 domyslny 29/98

30 Szybkie tworzenie klasy pochodnej w Eclipse 30/98

31 Dziedziczenie package pl.wyklad1.klasapokazowa; public class KlasaPrzykladowa { public class KlasaPochodna extends KlasaPrzykladowa { // deklaracje konstruktorów KlasaPrzykladowa() { x = 0; tekst = "domyslny"; public void wypisz() { System.out.println(x + " " + y + " " + tekst); int y = 10; // deklaracje metod public void wypisz() { System.out.println(x + " " + tekst); Klasa Pochodna (podrzędna) Subclass // deklaracje pól int x; String tekst; Klasa Nadrzędna Superclass 31/98

32 Struktura klasy [modyfikatory] class NazwaKlasy [extends NazwaKlasyBazowej] [implements NazwaInterfejsu] { //deklaracje konstruktorów NazwaKlasy(lista parametrów){ //treść/zawartość konstruktora extends oznacza dziedziczenie. Tworząc nową klasę w Javie zawsze używamy dziedziczenia. //deklaracjejeśli metod nie napiszemy jawnie extends, w takim wypadku dziedzicznymy po Typ1 metoda1(lista parametrów) { klasie Object. //treść/zawartość metody1 return obiekttyp1;... //deklaracje pól Typ pole1;... Typ polen; 32/98

33 Szybkie tworzenie klasy (Object) 33/98

34 Przykład: public class Punkt { //konstruktor dwuargumentowy Punkt (double parametr1, double parametr2){ x = parametr1; y = parametr2; //pola double x = 0, y = 0; Nawet jeśli nie ma jawnego dziedziczenia, powstała klasa jest rozszrzerzeniem klasy Object Powyższa deklaracji klasy jest równoważna temu: public class Punkt extends Object { double x = 0, y = 0; Punkt (double parametr1, double parametr2){ x = parametr1; y = parametr2; 34/98

35 Klasa Object 35/98

36 Klasa Object 36/98

37 Przykład przedefiniowania (przeciążenia) metody tostring() odziedziczonej z klasy bazowej Object public class Punkt extends Object{ double x = 0, y = 0; Punkt (double parametr1, double parametr2){ x = parametr1; y = parametr2; public String tostring(){ String text; text = "Wspolrzedne ("+ x + ", " + y + ")"; return text; 37/98

38 Klasa Object 38/98

39 metoda equals() Służy ona do porównywania, czy dwa obiekty są sobie równe. Implementując metodę equals(), należy pamiętać o kilku zasadach metoda equals musi być zwrotna, czyli a.equals(a)==true. metoda equals musi być symetryczna, czyli a.equals(b)==b.equals(a). metoda equals musi być przechodnia, czyli jeżeli a.eqauls(b)==true i b.equals(c)==true to a.equals(c)==true. (Jednak gdy: a.equals(b)==false i b.equals(c)==false to a.equals(c) może być true) metoda equals musi być konsekwenta, czyli gdy dwa razy (w różnych chwilach czasu) porównujemy te same obiekty, to wynik tego porównania powinien być taki sam. obiekt jest nie równy null, czyli a.equals(null)==false dla każdego a nie będącego null To metoda, której powinniśmy używać porównując dwa obiekty. Np. dwa String-i: if (ala == Ala ) źle! if (ala.equals( Ala )) dobrze 39/98

40 Struktura klasy [modyfikatory] class NazwaKlasy [extends NazwaKlasyNadrzednej] [implements NazwaInterfejsu] { //deklaracje konstruktorów NazwaKlasy(lista parametrów){ //treść/zawartość konstruktora //deklaracje metod Typ1 metoda1(lista parametrów) { //treść/zawartość metody1 return obiekttyp1;... Konstruktory i dziedziczenie //deklaracje pól Typ pole1;... Typ polen; 40/98

41 Konstruktor Specjalna metoda danej klasy, wywoływana podczas tworzenia jej instancji. Podstawowym zadaniem konstruktora jest zainicjowanie obiektu. W C++/Javie: Nazywa się tak samo jak klasa Nic nie zwraca (brak napisu void przed nazwą) Może przyjmować: 0 parametrów (konstruktor domyślny / bezargumentowy) kilka parametrów (konstruktory z argumentami) Obiekt tej samej klasy (konstruktor kopiujący) 41/98

42 Konstruktory public class Punkt{ Punkt (){ x = 0; y = 0; Konstruktor domyślny Punkt (double parametr1, double parametr2){ x = parametr1; Konstruktor z y = parametr2; parametrami Punkt (Punkt p){ x = p.x; y = p.y; Konstruktor kopiujący double x, y; 42/98

43 Konstruktory i dziedziczenie super(p1, p2) jest takim samym wywołaniem konstruktora jak: new Punkt(p1,p2) public class Kolo extends Punkt { double promien = 0; public Kolo(double parametr1, double parametr2, double parametr3) { super(parametr1, parametr2); promien = parametr3; public Kolo(){ super(); promien = 10; Konstruktor bezargumentowy domyślne parametry klasy (nie trzeba pisać jawnie) public Kolo (Punkt p, double parametr ){ super(p.x, p.y); promien = parametr; public Kolo(Kolo k){ super(k.x,k.y); promien = k.promien; Konstruktor kopiujący 43/98

44 Konstruktory i dziedziczenie public class Kolo extends Punkt { double promien = 0; public Kolo(double parametr1, double parametr2, double parametr3) { super(parametr1, parametr2); promien = parametr3; public Kolo(){ promien = 10; Uwaga, jeśli klasa Punkt nie miałaby żadnego konstruktora: OK. Java stworzyłaby pusty konstruktor domyślny dla klasy nadrzędnej. public Kolo (Punkt p, double parametr ){ super(p.x, p.y); promien = parametr; public Kolo(Kolo k){ super(k.x,k.y); promien = k.promien; Konstruktor kopiujący 44/98

45 Konstruktory i dziedziczenie public class Kolo extends Punkt { double promien = 0; public Kolo(double parametr1, double parametr2, double parametr3) { super(parametr1, parametr2); promien = parametr3; Uwaga, jeśli klasa Punkt nie miałaby konstruktora public Kolo(){ bezargumentowego, ALE miała inny konstruktor, promien = 10; pojawi się błąd: Implicit super constructor punkt() is undefined. public Kolo (Punkt p, double parametr ){ super(p.x, p.y); promien = parametr; public Kolo(Kolo k){ super(k.x,k.y); promien = k.promien; 45/98

46 Konstruktory i dziedziczenie public class Kolo extends Punkt { double promien = 0; public Kolo(double parametr1, double parametr2, double parametr3) { super(parametr1, parametr2); promien = parametr3; public Kolo(){ super(0,0); promien = 10; public Kolo (Punkt p, double parametr ){ super(p.x, p.y); promien = parametr; public Kolo(Kolo k){ super(k.x,k.y); promien = k.promien; 46/98

47 Użycie super jako Konstruktora Konstruktory nie są dziedziczone Wywołanie konstruktora nad-klasy: super(lista-parametrow) Musi być pierwszą instrukcją konstruktora podklasy: class NadKlasa {... class PodKlasa extends NadKlasa { PodKlasa(...) { super(...);... 47/98

48 Użycie konstruktorów public class KoloTest { public static void main(string[] args) { Kolo a,b,c,d,e; // Wykorzystanie różnych konstruktorów: a = new Kolo (10,10,5); b = new Kolo(); Punkt p1 = new Punkt (30,30); c = new Kolo (p1, 30); d = new Kolo (new Punkt(40,40), 40 ); e = new Kolo(c); System.out.println("" + a + "\n" + b + "\n"+ c + "\n" + d + "\n"+ e); // Jeśli klasa pochodna Kolo nie ma zdefiniowanej własnej metody // tostring() wykorzystywana jest metoda tostring klasy bazowej Punkt System.out.println(new Kolo(60,60,60)); // tworzenie "chwilowego" // obiektu bez referencji, na potrzeby wywołania metody 48/98

49 Odwołanie do Nadklasy przez super Odwołanie do elementu nad-klasy: super.pole super.metoda() Stosowane szczególnie gdy składowe podklasy przesłaniają składowe nad-klasy o tych samych nazwach. 49/98

50 Użycie super w metodach public class Superclass { public void printmethod() { System.out.println("Wypisano w nadklasie."); Jeśli nadpiszemy metodę z nadklasy, ale nadal chcemy ją wykorzystać, możemy użyć słowa kluczowego super. public class Subclass extends Superclass { // przeciąża (nadpisuje) metodę z nadklasy public void printmethod() { super.printmethod(); System.out.println("Wypisano w podklasie"); public static void main(string[] args) { Subclass s = new Subclass(); s.printmethod(); Efekt: Wypisano w nadklasie. Wypisano w podklasie. 50/98

51 Szybkie tworzenie klasy pochodnej w Eclipse Stwórz metody: Konstruktory z klasy nadrzędnej 51/98

52 Konstruktory z klasy nadrzędnej public class ZamykaneOkienko extends JFrame { public ZamykaneOkienko() throws HeadlessException { public ZamykaneOkienko(GraphicsConfiguration arg0) { super(arg0); public ZamykaneOkienko(String arg0) throws HeadlessException { super(arg0); Konstruktory klasy nadrzędnej dodane przez Eclipse a public ZamykaneOkienko(String arg0, GraphicsConfiguration arg1) { super(arg0, arg1); /** args */ public static void main(string[] args) { ZamykaneOkienko zo = new ZamykaneOkienko(); zo.setvisible(true); 52/98

53 Konstruktory z klasy nadrzędnej public class ZamykaneOkienko extends JFrame { public ZamykaneOkienko() throws HeadlessException { this.setsize(640,480); setdefaultcloseoperation(exit_on_close); public ZamykaneOkienko(GraphicsConfiguration arg0) { super(arg0); this.setsize(640,480); setdefaultcloseoperation(exit_on_close); Nasze rozszerzenie klasy nadrzędnej: konkretne ustawienia, dodatkowe elementy. public ZamykaneOkienko(String arg0) throws HeadlessException { super(arg0); this.setsize(640,480); setdefaultcloseoperation(exit_on_close); Konstruktory klasy nadrzędnej dodane przez Eclipse a public ZamykaneOkienko(String arg0, GraphicsConfiguration arg1) { super(arg0, arg1); this.setsize(640,480); setdefaultcloseoperation(exit_on_close); /** args */ public static void main(string[] args) { ZamykaneOkienko zo = new ZamykaneOkienko(); zo.setvisible(true); 53/98

54 Przygotowanie do laboratorium Komponenty w Javie Podpowiedzi Eclipse a Layout Manager

55 Trzy najpopularniejsze rodzaje programów: aplikacja konsolowa samodzielny program pracujący w trybie konsolowym/tekstowym systemu operacyjnego, aplikacja graficzna samodzielny program pracujący w trybie graficznym (okienkowym) aplet najczesciej nieduzy program napisany w jezyk Java i umieszczony na stronie HTML i uruchamiany wraz z nia przez przegladarkę internetowa, obsługujaca jezyk Java. (deprecated - już nie stosowane) 55/98

56 Komponenty Okienka: JFrame lub JFrame frame = new JFrame(); frame.setsize(640, 480); Frame.setDefaultCloseOperation(EXIT_ON_CLOSE); frame.setvisible(true); public class MyFrame extends JFrame { public MyFrame() { this.setsize(640,480); setdefaultcloseoperation(exit_on_close); public static void main(string[] args) { MyFrame mf = new MyFrame(); mf.setvisible(true); (zalecane) 56/98

57 Komponenty Okienka: JFrame lub JFrame frame = new JFrame(); frame.setsize(640, 480); Frame.setDefaultCloseOperation(EXIT_ON_CLOSE); frame.setvisible(true); public class MyFrame extends JFrame { public MyFrame() { this.setsize(640,480); setdefaultcloseoperation(exit_on_close); public static void main(string[] args) { MyFrame mf = new MyFrame(); mf.setvisible(true); (zalecane) Dla domyślnego okna naciśnięcie [X] nie powoduje zamkniecia aplikacji. Aby to zmienić, należy wywołać metodę setdefaultcloseoperation(). 57/98

58 SetDefaultCloseOperation() EXIT_ON_CLOSE DISPOSE_ON_CLOSE zamyka aplikację zamyka ramke, usuwa obiekt reprezentujacy ramke, ale pozostawia pracujaca aplikację DO_NOTHING_ON_CLOSE nic nie robi (pozostawia ramke otwarta i kontynuuje prace aplikacji) HIDE_ON_CLOSE ukrywa ramke pozostawiajac pracujaca aplikacje (domyślne) 58/98

59 Frame Własne okienko [przykład] 59/98

60 Dziedziczenie po JFrame package pl.wyklad1.klasapokazowa; import javax.swing.jframe; public class PierwszeOkienko extends JFrame { PierwszeOkienko() { this.setsize(500,500); public static void main(string[] args) { PierwszeOkienko po = new PierwszeOkienko(); po.setvisible(true); 60/98

61 Komponenty Okienka: JFrame JFrame frame = new JFrame(); frame.setsize(640, 480); frame.setvisible(true); lub public class MyFrame extends JFrame { public MyFrame() { this.setsize(640,480); public static void main(string[] args) { MyFrame mf = new MyFrame(); mf.setvisible(true); (zalecane) Kontener: JPanel JPanel panel = new JPanel(); lub public class MyPanel extends JPanel {... public static void main(string[] args) { MyPanel mp = new MyPanel(); 61/98

62 Komponenty Guzik: JButton JButton buttonok = new JButton("OK"); panel.add(buttonok); JLabel label = new JLabel("To jest etykieta"); panel.add(label); Etykieta: JLabel JTextField field = new JTextField("To jest pole tekstowe"); panel.add(field); Pole tekstowe: JTextField 62/98

63 Dodawanie komponentu utworzenie komponentu (obiektu pewnej klasy) oraz ustawienie jego właściwości wywołanie metody add() kontenera do którego chcemy dodać nasz komponent Komponent komponent = new Komponent(arg); kontener.add(komponent) Kontener (np. JPanel) to także rodzaj komponentu, więc może być dodany jako element innego kontenera panelglowny.add(panelmniejszy) JButton button1 = new JButton("OK"); panel.add(button1); 63/98

64 Okno public class MyFrame extends JFrame { public MyFrame() { Konstruktor okna this.setsize(640,480); public static void main(string[] args) { MyFrame mf = new MyFrame(); mf.setvisible(true); JFrame Stworzenie instancji (egzemplarza) okna i wyświetlenie go 64/98

65 Okno z przyciskiem Wewnątrz konstruktora okna dodajemy komponenty które powinny się znaleźć w tym oknie Utworzenie komponentu JFrame JButton 2. Wywołanie metody add Przykład kodu na stronie przedmiotu! 65/98

66 Panel (w oknie) z przyciskiem Przykład kodu na Wewnątrz konstruktora okna dodajemy komponenty które powinny się znaleźć w tym oknie stronie przedmiotu! 1. Utworzenie panelu 2. Umieszczenie panelu w oknie 3. Utworzenie kontrolki (guzika) 4. Umieszczenie guzika w panelu (który jest w oknie) 66/98

67 Kilka kontrolek Przykład kodu na stronie przedmiotu! Wewnątrz konstruktora okna dodajemy komponenty które powinny się znaleźć w tym oknie public class KilkaKontrolek extends JFrame { public KilkaKontrolek() 1. Utworzenie panelu i dodanie go do { okna this.setsize(400,400); this.setdefaultcloseoperation(exit_on_close); JPanel panel = new JPanel(); add(panel); JButton b1 = new JButton("Przycisk 1"); JButton b2 = new JButton("Przycisk 1"); JButton b3 = new JButton("Przycisk 1"); JLabel l1 = new JLabel("Napis 1"); JLabel l2 = new JLabel("Napis 2"); JTextField tf1 = new JTextField("Pole tekstowe"); 2. Utworzenie kontrolek panel.add(b1); panel.add(b2); panel.add(b3); panel.add(l1); panel.add(l2); panel.add(tf1); 3. Umieszczenie kontrolek w panelu public static void main(string[] args) { KilkaKontrolek okno = new KilkaKontrolek(); okno.setvisible(true); 67/98

68 Kontrolki Swing JButton JCheckBox JComboBox JList JMenu JRadioButton JSlider JSpinner JTextField JPasswordField 68/98

69 Wybrane kontrolki Swing (podstawowe) Więcej na stronie:

70 Kontrolki do wyświetlania informacji oraz kontrolki najwyższego poziomu JLabel JPanel JProgressBar JScrollPane JSeparator JSplitPane JToolTip JTabbedPane JToolBar JInternalFrame JLayeredPane RootPane 70/98

71 Podpowiedzi Eclipse a Pamiętajcie o możliwości naciśnięcia ikonki błedu po lewej stronie, żeby: Dodać odpowiednie pakiety (import-y) Uzyskać podpowiedź jak naprawić błąd Jeśli szukacie odpowiedniej metody, zawsze warto nacisnąć kropkę i przejrzeć listę dostępnych funkcji Listę można też przywołać naciskając CTRL + spacja 71/98

72 Layout Manager Czyli jak ułożyć kontrolki w okienku? Zwykle nie chcemy nawrzucać ich jednej po drugiej do okna 72/98

73 Layout Manager Czyli jak ułożyć kontrolki w okienku? Zwykle nie chcemy nawrzucać ich jednej po drugiej do okna Co więcej, jeśli nie utworzymy panelu, a będziemy dodawać kontrolki bezpośrednio do JFrame, to widoczna będzie tylko ostatnia! Po dodaniu 5 przycisków widzimy ostatni: 73/98

74 Layout Manager Czyli jak ułożyć kontrolki w okienku? Od czego to zależy? Co możemy zrobić? Odpowiedź: zarządca układu (Layout Manger) 74/98

75 Rozmieszczanie komponenetów Layout Manager Sposób rozmieszczenia komponentów w danym kontenerze zależny jest od wybranego zarządcy układu (Layout Manager) JFrame i JPanel mają innych domyślnych zarządców Zastosowanie zarządcy układu w kontenerze metoda setlayout() Predefiniowani zarządcy układu ciągły FlowLayout siatkowy - GridLayout brzegowy BorderLayout kartowy CardLayout torebkowy - GridBagLayout pudełkowy BoxLayout wiosenny SpringLayout grupowy - GroupLayout 75/98

76 Layout Manager FlowLayout Najprostszy layout manager i domyślny dla każdego JPanel u. Wrzuca komponenty jeden po drugim do pojedynczego wiersza. Jeśli zabraknie miejsca w danym wierszu, wrzuca do kolejnego. Umieszczenie komponentów zależy od rozmiaru kontenera, więc nie możemy jasno określić, w którym dokładnie miejscu wyląduje nasz guzik. 76/98

77 Layout Manager GridLayout GridLayout ustala ten sam rozmiar dla wszystkich komponentów po czym wrzuca je w siatkę o określonej ilości kolumn i wierszy. 77/98

78 Layout Manager BorderLayout Domyślny dla JFrame Możliwe składniki: PAGE_START LINE_START CENTER LINE_END PAGE_END Wygodne do robienia np. menu po lewej stronie albo nagłówka i stopki. Nie wszystkie składniki muszą być dodane 78/98

79 Layout Manager BorderLayout Wybrane składniki: PAGE_START LINE_START CENTER Wygodne do robienia np. menu po lewej stronie i nagłówka. Nie wszystkie składniki muszą być dodane 79/98

80 Quiz time Co to za Layout?

81 1. Co to za Layout? (a) BorderLayout (b) FlowLayout (c) GridLayout Przykład kodu na stronie przedmiotu! 81/98

82 1. Co to za Layout? (a) BorderLayout (b) FlowLayout CENTER PAGE_END (c) GridLayout Przykład kodu na stronie przedmiotu! 82/98

83 2. Co to za Layout? (a) BorderLayout (b) FlowLayout (c) GridLayout Przykład kodu na stronie przedmiotu! 83/98

84 2. Co to za Layout? (a) BorderLayout (b) FlowLayout (c) GridLayout Przykład kodu na stronie przedmiotu! 84/98

85 3. Co to za Layout? (a) BorderLayout (b) FlowLayout (c) GridLayout Przykład kodu na stronie przedmiotu! 85/98

86 3. Co to za Layout? (a) BorderLayout (b) FlowLayout (c) GridLayout PAGE_START LINE_START LINE_END Przykład kodu na stronie przedmiotu! 86/98

87 4. Co to za Layout? (a) BorderLayout (b) FlowLayout (c) GridLayout Przykład kodu na stronie przedmiotu! 87/98

88 4. Co to za Layout? (a) BorderLayout (b) FlowLayout 2x2 (c) GridLayout Przykład kodu na stronie przedmiotu! 88/98

89 5. Co to za Layout? (a) BorderLayout (b) FlowLayout (c) GridLayout Przykład kodu na stronie przedmiotu! 89/98

90 5. Co to za Layout? (a) BorderLayout (b) FlowLayout (c) GridLayout PAGE_START LINE_START 3x1 Przykład kodu na stronie przedmiotu! 90/98

91 Layout Manager W ramach osobnych paneli można zastosować różne typ zarządzania rozmieszczeniem komponentów Przykład kodu na stronie przedmiotu! 91/98

92 Layout Manager W ramach osobnych paneli można zastosować różne typ zarządzania rozmieszczeniem komponentów BorderLayout (górny, lewy i centrum) + GridLayout (po lewej) + FlowLayout (u góry) Każdy z paneli ma swój oddzielny layout, i każdy dodany jest do okna w innym miejscu... 92/98

93 Layout Manager W ramach osobnych paneli można zastosować różne typ zarządzania rozmieszczeniem komponentów 93/98

94 Layout Manager W ramach osobnych paneli można zastosować różne typ zarządzania rozmieszczeniem komponentów BorderLayout + GridLayout ( 4 x 3 ) + GridLayout ( 5 x 1 ) + FlowLayout 94/98

95 Użycie LM JPanel panel1 = new JPanel(new FlowLayout()); JPanel panel2 = new JPanel(new BorderLayout()); panel1.add(acomponent1); panel2.add(acomponent2, BorderLayout.PAGE_START); Można też dawać wskazówki co do wymiarów komponentów wywołując metody na konkretnych komponentach setminimumsize, setpreferredsize, and setmaximumsize. np. component.setmaximumsize(new Dimension(Integer.MAX_VALUE, Integer.MAX_VALUE)); 95/98

96 Rozmiary komponentów Silnie zależą od użytego Layout Managera 96/98

97 Dziękuję za Uwagę! Do zobaczenia za tydzień. Porozmawiamy o interfejsach i obsłudze zdarzeń. M.in. jak oprogramować używanie guzików. 97/98

98 Ciekawostki this 98/98

99 Słowo kluczowe this Czasem metoda obiektu potrzebuje odwołać się do obiektu wywołującego tę metodę. Umożliwia to słowo kluczowe this. Wewnątrz metody this oznacza obiekt, na rzecz którego wywołano metodę. W Java nie można deklarować dwóch takich samych zmiennych lokalnych w obrębie jednego zakresu, jednak istnieje możliwość przesłonięcia zmiennych instancyjnych klasy przez parametry metody. Wewnątrz metody zmienne instancyjne byłyby niedostępne, gdyby nie możliwość użycia zmiennej this: public class Punkt { double x = 0, y = 0; Punkt (double x, double y){ this.x = x; this.y = y;

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/ Projekty Szczegoły na temat projektów można znaleźć na stronie: http://java.fizyka.pw.edu.pl/projekty

Bardziej szczegółowo

Klasy abstrakcyjne. Klasę abstrakcyjną tworzymy przy pomocy modyfikatora abstract

Klasy abstrakcyjne. Klasę abstrakcyjną tworzymy przy pomocy modyfikatora abstract Klasy abstrakcyjne Klasa abstrakcyjna jest to klasa której obiekty nie mogą być tworzone, może być natomiast dziedziczona. Może posiadać konstruktor, może on być jednak wywołany tylko przez klasy pochodne.

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

Struktura programu: package pl.mojastrona.mojpakiet; import javax.swing.*; import java.awt.container; class MojaKlasa extends Jframe {

Struktura programu: package pl.mojastrona.mojpakiet; import javax.swing.*; import java.awt.container; class MojaKlasa extends Jframe { Struktura programu: package pl.mojastrona.mojpakiet; import javax.swing.*; import java.awt.container; class MojaKlasa extends Jframe { public MojaKlasa() {... class KlasaStartowa { MojaKlasa ob1; MojaKlasa

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

Programowanie zdarzeniowe

Programowanie zdarzeniowe Programowanie zdarzeniowe II. Biblioteka Swing Małgorzata Prolejko ZDA JA16Z03 Plan Struktura Swing Komponenty proste Ramki Kolejność warstw Zarządca układu Panele Komponenty złożone Okna dialogowe i wewnętrzne

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

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

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

Podstawy Języka Java

Podstawy Języka Java Podstawy Języka Java Wprowadzenie do AWT AWT Abstract Window Toolkit, biblioteka wykorzystywana do budowy graficznych interfejsów użytkownika w Javie AWT do obsługi elementów interfejsu użytkownika wykorzystuje

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

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

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

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

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

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

Polimorfizm, metody wirtualne i klasy abstrakcyjne

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

Bardziej szczegółowo

Java biblioteka Swing

Java biblioteka Swing Java biblioteka Swing Podstawowe klasy Klasa JComponent Klasa JFrame Klasa JFrame Klasa bazowa dla okien Ważne właściwości: settitle ( ) setdefaultcloseoperation ( ) setsize ( ), setlocation ( ) setlayout

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

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

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

Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com

Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com GUI-Swing Wstęp do tworzenia prostych aplikacji z interfejsem graficznym (GUI) przy pomocy Swing, rysowanie prostych

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 obiektowe

Programowanie obiektowe Programowanie obiektowe Laboratorium 3 i 4 - przypomnienie wiadomości o OOP na przykładzie Javy mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 8 marca 2017 1 / 20 mgr inż. Krzysztof Szwarc

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

JAVA W SUPER EXPRESOWEJ PIGUŁCE

JAVA W SUPER EXPRESOWEJ PIGUŁCE JAVA W SUPER EXPRESOWEJ PIGUŁCE Obiekt Obiekty programowe to zbiór własności i zachowań (zmiennych i metod). Podobnie jak w świecie rzeczywistym obiekty posiadają swój stan i zachowanie. Komunikat Wszystkie

Bardziej szczegółowo

Programowanie 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Pierwsza ramka. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 10

Pierwsza ramka. dr Anna Łazińska, WMiI UŁ Podstawy języka Java   1 / 10 Pierwsza ramka dr Anna Łazińska, WMiI UŁ Podstawy języka Java https://www.javatpoint.com 1 / 10 Pierwsza ramka - kod package myframe1; import javax.swing.jframe; import javax.swing.jlabel; class MyFrame1

Bardziej szczegółowo

Java niezbędnik programisty spotkanie nr 12. Graficzny interfejs użytkownika

Java niezbędnik programisty spotkanie nr 12. Graficzny interfejs użytkownika Java niezbędnik programisty spotkanie nr 12 Graficzny interfejs użytkownika 1 Graphical User Interface (GUI) Abstract Window Toolkit Swing słabo się prezentuje mało obiektowy projekt i implementacja zajęły

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

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

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

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

Język JAVA podstawy. Wykład 5, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy Wykład 5, część 1 Jacek Rumiński 1 Język JAVA podstawy Plan wykładu: 1. Wprowadzenie do grafiki w Javie 2. Budowa GUI: komponenty, kontenery i układanie komponentów 3. Budowa GUI: obsługa

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

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

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

1. Język JAVA. 1. Pierwszy program. 2. Kalkulator. 3. Klasy. 4. Dziedziczenie

1. Język JAVA. 1. Pierwszy program. 2. Kalkulator. 3. Klasy. 4. Dziedziczenie 1. Język JAVA 1. Pierwszy program Napisać program, który: 1. wypisuje na ekran dowolny tekst. 2. Wypisuje argumenty podane w linii poleceń. 2. Kalkulator 1. Program wypisuje sumę liczb podanych jako parametr.

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

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

Język JAVA podstawy. wykład 2, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy wykład 2, część 2 Jacek Rumiński 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

Bardziej szczegółowo

SWING. dr Jarosław Skaruz http://jareks.ii.uph.edu.pl jaroslaw@skaruz.com

SWING. dr Jarosław Skaruz http://jareks.ii.uph.edu.pl jaroslaw@skaruz.com SWING dr Jarosław Skaruz http://jareks.ii.uph.edu.pl jaroslaw@skaruz.com O czym będzie? Przykład aplikacji z GUI Zarządcy układu Obsługa zdarzeń Komponenty GUI Wprowadzenie obiektowy paradygmat do tworzenia

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

SWING ZAGADNIENIA: wprowadzenie, kontenery I komponenty, LayoutManager, komponenty tekstowe.

SWING ZAGADNIENIA: wprowadzenie, kontenery I komponenty, LayoutManager, komponenty tekstowe. SWING ZAGADNIENIA: wprowadzenie, kontenery I komponenty, LayoutManager, komponenty tekstowe. MATERIAŁY: http://docs.oracle.com/javase/tutorial/uiswing/ http://th-www.if.uj.edu.pl/zfs/ciesla/ JĘZYK JAVA,

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

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

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

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

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

DOSTĘP DO METOD I ZMIENNYCH. Dostęp do zmiennych (na podstawie:l.lemay,r.cadenhead,java 2 dla każdego, Helion 2001)

DOSTĘP DO METOD I ZMIENNYCH. Dostęp do zmiennych (na podstawie:l.lemay,r.cadenhead,java 2 dla każdego, Helion 2001) DOSTĘP DO METOD I ZMIENNYCH Dostęp do zmiennych (na podstawie:l.lemay,r.cadenhead,java 2 dla każdego, Helion 2001) Zakres public protected domyślny private widzialności metody lub zmiennej Klasa tak tak

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

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

Programowanie Obiektowe Java

Programowanie Obiektowe Java Programowanie Obiektowe Java Małgorzata Janik Zakład Fizyki Jądrowej malgorzata.janik@pw.edu.pl Regulamin Warunki zaliczenia Wykład Laboratoria Projekt 2/85 Programowanie Obiektowe Strona internetowa przedmiotu

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

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

Programowanie w języku JAVA. Wykład IV Swing - GUI

Programowanie w języku JAVA. Wykład IV Swing - GUI Programowanie w języku JAVA Wykład IV Swing - GUI Architektura 2 JFC (Java Foundation Classes) zbiór klas do budowy interfejsu graficznego użytkownika i interaktywności aplikacji Javy Komponenty Swing

Bardziej szczegółowo

C++ - dziedziczenie. C++ - dziedziczenie. C++ - dziedziczenie. C++ - dziedziczenie. C++ - dziedziczenie C++ - DZIEDZICZENIE.

C++ - dziedziczenie. C++ - dziedziczenie. C++ - dziedziczenie. C++ - dziedziczenie. C++ - dziedziczenie C++ - DZIEDZICZENIE. C++ - DZIEDZICZENIE Do najważniejszych cech języka C++ należy możliwość wielokrotnego wykorzystywania kodu Prymitywnym, ale skutecznym sposobem jest kompozycja: deklarowanie obiektów wewnątrz innych klas,

Bardziej szczegółowo

2. Klasy cz. 2 - Konstruktor kopiujący. Pola tworzone statycznie i dynamicznie - Funkcje zaprzyjaźnione - Składowe statyczne

2. Klasy cz. 2 - Konstruktor kopiujący. Pola tworzone statycznie i dynamicznie - Funkcje zaprzyjaźnione - Składowe statyczne Tematyka wykładów 1. Wprowadzenie. Klasy cz. 1 - Język C++. Programowanie obiektowe - Klasy i obiekty - Budowa i deklaracja klasy. Prawa dostępu - Pola i funkcje składowe - Konstruktor i destruktor - Tworzenie

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

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

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

WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem.

WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem. WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM NetBeans Wykonał: Jacek Ventzke informatyka sem. VI 1. Uruchamiamy program NetBeans (tu wersja 6.8 ) 2. Tworzymy

Bardziej szczegółowo

Marcin Luckner Warsaw University of Technology Faculty of Mathematics and Information Science

Marcin Luckner Warsaw University of Technology Faculty of Mathematics and Information Science Marcin Luckner Warsaw University of Technology Faculty of Mathematics and Information Science mluckner@mini.pw.edu.pl http://www.mini.pw.edu.pl/~lucknerm Wszystkie komponenty są rozmieszczane przez domyślny

Bardziej szczegółowo

Języki i metody programowania Java Lab2 podejście obiektowe

Języki i metody programowania Java Lab2 podejście obiektowe Języki i metody programowania Java Lab2 podejście obiektowe https://docs.oracle.com/javase/tutorial/ http://zofia.kruczkiewicz.staff.iiar.pwr.wroc.pl/wyklady/pojava/javazk4_2.pdf Zofia Kruczkiewicz 1 Zadanie

Bardziej szczegółowo

TEMAT : KLASY DZIEDZICZENIE

TEMAT : KLASY DZIEDZICZENIE TEMAT : KLASY DZIEDZICZENIE Wprowadzenie do dziedziczenia w języku C++ Język C++ możliwa tworzenie nowej klasy (nazywanej klasą pochodną) w oparciu o pewną wcześniej zdefiniowaną klasę (nazywaną klasą

Bardziej szczegółowo

Aplikacje w środowisku Java

Aplikacje w środowisku Java Aplikacje w środowisku Java Materiały do zajęć laboratoryjnych Graficzny Interfejs Użytkownika mgr inż. Kamil Zieliński Katolicki Uniwersytet Lubelski Jana Pawła II 2018/2019 Spis treści Graficzny Interfejs

Bardziej szczegółowo

Interaktywne aplety obsługa zdarzeń, uruchamianie apletu przez przeglądarkę lub maszynę wirtualną Javy. Tworzenie łącz w apletach

Interaktywne aplety obsługa zdarzeń, uruchamianie apletu przez przeglądarkę lub maszynę wirtualną Javy. Tworzenie łącz w apletach Interaktywne aplety obsługa zdarzeń, uruchamianie apletu przez przeglądarkę lub maszynę wirtualną Javy. Tworzenie łącz w apletach Przykład 1 a) Program ProstyAplet2.class uruchomiony jako aplet w przeglądarce

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

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

PWSG Ćwiczenia 12. Wszystkie ukończone zadania należy wysłać na adres: lub

PWSG Ćwiczenia 12. Wszystkie ukończone zadania należy wysłać na adres: lub PWSG Ćwiczenia 12 Wszystkie ukończone zadania należy wysłać na adres: sara.m.jurczyk@gmail.com lub sarajurczyk@kul.lublin.pl Zadanie 1: Różnica między zwykłymi polami/metodami, a polami/metodami static

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

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 w Javie 1 Wykład i Ćwiczenia 3 Programowanie obiektowe w Javie cd. Płock, 16 października 2013 r.

Programowanie w Javie 1 Wykład i Ćwiczenia 3 Programowanie obiektowe w Javie cd. Płock, 16 października 2013 r. Programowanie w Javie 1 Wykład i Ćwiczenia 3 Programowanie obiektowe w Javie cd. Płock, 16 października 2013 r. Programowanie obiektowe Programowanie obiektowe (z ang. object-oriented programming), to

Bardziej szczegółowo

Laboratorium 1 - Programowanie proceduralne i obiektowe

Laboratorium 1 - Programowanie proceduralne i obiektowe Laboratorium 1 - Programowanie proceduralne i obiektowe mgr inż. Kajetan Kurus 4 marca 2014 1 Podstawy teoretyczne 1. Programowanie proceduralne (powtórzenie z poprzedniego semestru) (a) Czym się charakteryzuje?

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe I. Obiekty i klasy Małgorzata Prolejko OBI JA16Z03 Plan Klasy i obiekty Odnośniki (referencje) Używanie klas predefiniowanych Tworzenie własnych klas Relacje pomiędzy klasami: dziedziczenie

Bardziej szczegółowo

Wykład 5: Klasy cz. 3

Wykład 5: Klasy cz. 3 Programowanie obiektowe Wykład 5: cz. 3 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD - podstawy Konstruktor i destruktor (część I) 2 Konstruktor i destruktor KONSTRUKTOR Dla przykładu

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

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

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

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

Graphic User Interfaces pakiet Swing

Graphic User Interfaces pakiet Swing Graphic User Interfaces pakiet Swing Streszczenie Celem wykładu jest zaprezentowanie podstaw tworzenia graficznych interfejsów przy użyciu pakietu Swing. Czas wykładu 90 minut. Można śmiało stwierdzić,

Bardziej szczegółowo

Materiały do zajęć VII

Materiały do zajęć VII Spis treści I. Klasy Materiały do zajęć VII II. III. Konstruktor Właściwości i indeksatory Klasy Programowanie obiektowe wiadomości wstępne Paradygmat programowania obiektowego Abstrakcja Hermetyzacja

Bardziej szczegółowo

DOSTĘP DO METOD I ZMIENNYCH, TABLICE. Dostęp do zmiennych (na podstawie:l.lemay,r.cadenhead,java 2 dla kaŝdego, Helion 2001)

DOSTĘP DO METOD I ZMIENNYCH, TABLICE. Dostęp do zmiennych (na podstawie:l.lemay,r.cadenhead,java 2 dla kaŝdego, Helion 2001) DOSTĘP DO METOD I ZMIENNYCH, TABLICE Dostęp do zmiennych (na podstawie:l.lemay,r.cadenhead,java 2 dla kaŝdego, Helion 2001) Zakres public protected domyślny private widzialności metody lub zmiennej Klasa

Bardziej szczegółowo

Programowanie urządzeń mobilnych

Programowanie urządzeń mobilnych Programowanie urządzeń mobilnych Najważniejsze platformy mobilne Android ios Windows Mobile / Windows Phone 7 Symbian Bada BlackBerry OS Brew Android Producent systemu: Open Handset Alliance Producenci

Bardziej szczegółowo