Programowanie Obiektowe Java
|
|
- Filip Wysocki
- 5 lat temu
- Przeglądów:
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 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ółowoKlasy 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ółowoJava: 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ółowoStruktura 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ółowoDokumentacja do API Javy.
Dokumentacja do API Javy http://java.sun.com/j2se/1.5.0/docs/api/ Klasy i obiekty Klasa jest to struktura zawierająca dane (pola), oraz funkcje operujące na tych danych (metody). Klasa jest rodzajem szablonu
Bardziej szczegółowoProgramowanie 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ółowoJava - 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ółowoProgramowanie 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ółowoProgramowanie 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ółowoPodstawy 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ółowoKontenery 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ółowoJava - 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ółowoDziedziczenie. 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ółowoInformatyka I. Dziedziczenie. Nadpisanie metod. Klasy abstrakcyjne. Wskaźnik this. Metody i pola statyczne. dr inż. Andrzej Czerepicki
Informatyka I Dziedziczenie. Nadpisanie metod. Klasy abstrakcyjne. Wskaźnik this. Metody i pola statyczne. dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2017 Dziedziczenie klas
Bardziej szczegółowoAplikacje 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ółowoMultimedia JAVA. Historia
Multimedia JAVA mgr inż. Piotr Odya piotrod@sound.eti.pg.gda.pl Historia 1990 rozpoczęcie prac nad nowym systemem operacyjnym w firmie SUN, do jego tworzenia postanowiono wykorzystać nowy język programowania
Bardziej szczegółowoPolimorfizm, 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ółowoJava 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ółowoProgramowanie 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ółowoProgramowanie obiektowe
Programowanie obiektowe IV. Interfejsy i klasy wewnętrzne Małgorzata Prolejko OBI JA16Z03 Plan Właściwości interfejsów. Interfejsy a klasy abstrakcyjne. Klonowanie obiektów. Klasy wewnętrzne. Dostęp do
Bardziej szczegółowoKlasy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 13
Klasy Klasa to grupa obiektów, które mają wspólne właściwości, a obiekt jest instancją klasy. Klasa w języku Java może zawierać: pola - reprezentują stan obiektu (odniesienie do pola z kropką), methods
Bardziej szczegółowoMateriał 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ółowoProgramowanie 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ółowoProgramowanie 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ółowoKurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016
Wykład 2 17 marca 2016 Dziedziczenie Klasy bazowe i potomne Dziedziczenie jest łatwym sposobem rozwijania oprogramowania. Majac klasę bazowa możemy ja uszczegółowić (dodać nowe pola i metody) nie przepisujac
Bardziej szczegółowoJAVA 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ółowoProgramowanie 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ółowoKurs 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ółowoInterfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej
Programowanie obiektowe Interfejsy Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Interfejsy Autor: Paweł Rogaliński Instytut Informatyki,
Bardziej szczegółowoWykł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ółowoPolimorfizm. 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ółowoWykł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ółowoWykł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ółowoJava: 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ółowo1 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ółowoJęzyk JAVA podstawy. wykład 2, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna
Język JAVA podstawy wykład 2, część 1 1 Język JAVA podstawy Plan wykładu: 1. Rodzaje programów w Javie 2. Tworzenie aplikacji 3. Tworzenie apletów 4. Obsługa archiwów 5. Wyjątki 6. Klasa w klasie! 2 Język
Bardziej szczegółowoJAVA. Strumienie wejścia i wyjścia. Pliki - zapis i odczyt
JAVA Pliki - zapis i odczyt Opracował: Andrzej Nowak Bibliografia: JAVA Szkoła programowania, D. Trajkowska Ćwiczenia praktyczne JAVA. Wydanie III,M. Lis Strumienie wejścia i wyjścia Strumienie wejścia
Bardziej szczegółowoPodstawy 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ółowoObszar statyczny dane dostępne w dowolnym momencie podczas pracy programu (wprowadzone słowem kluczowym static),
Tworzenie obiektów Dostęp do obiektów jest realizowany przez referencje. Obiekty w języku Java są tworzone poprzez użycie słowa kluczowego new. String lan = new String( Lancuch ); Obszary pamięci w których
Bardziej szczegółowoRozdział 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ółowoLaboratorium 03: Podstawowe konstrukcje w języku Java [2h]
1. Typy. Java jest językiem programowania z silnym systemem kontroli typów. To oznacza, że każda zmienna, atrybut czy parametr ma zadeklarowany typ. Kompilator wylicza typy wszystkich wyrażeń w programie
Bardziej szczegółowoJava. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak
Java język programowania obiektowego Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak 1 Język Java Język Java powstał w roku 1995 w firmie SUN Microsystems Java jest językiem: wysokiego
Bardziej szczegółowoPierwsza 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ółowoJava 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ółowoAplikacje 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ółowoAplikacje w środowisku Java
Aplikacje w środowisku Java Materiały do zajęć laboratoryjnych Klasy i obiekty - wprowadzenie mgr inż. Kamil Zieliński Katolicki Uniwersytet Lubelski Jana Pawła II 2018/2019 Klasa zbiór pól i metod Obiekt
Bardziej szczegółowoDziedziczenie. 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ółowoWykł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ółowoJę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ółowoJęzyki i metody programowania Java. Wykład 2 (część 2)
Języki i metody programowania Java INF302W Wykład 2 (część 2) Autor Dr inż. Zofia Kruczkiewicz 1 Struktura wykładu 1. Identyfikacja danych reprezentowanych przez klasy podczas opracowania koncepcji prostego
Bardziej szczegółowoProgramowanie w Internecie. Java
Programowanie w Internecie Java Autor: dr inż. Zofia Kruczkiewicz Literatura: L. Lemay, R. Cadenhead P. Naughton Krzysztof Barteczko Boone Barry Java 2 dla każdego Podręcznik Języka Programowania Java
Bardziej szczegółowoProgramowanie 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ółowoPodstawy programowania obiektowego
Podstawy programowania obiektowego Technologie internetowe Wykład 5 Program wykładu Podejście obiektowe kontra strukturalne do tworzenie programu Pojęcie klasy i obiektu Składowe klasy: pola i metody Tworzenie
Bardziej szczegółowo1. 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ółowoKurs 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ółowoJę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ółowoSWING. 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ółowoKonstruktory. 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ółowoSWING 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ółowoInformatyka 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ółowoDziedziczenie. 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ółowoTechnologie 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ółowoKlasy 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ółowoProgramowanie 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ółowoTechniki 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ółowoDOSTĘ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ółowoWykład 8: klasy cz. 4
Programowanie obiektowe Wykład 8: klasy cz. 4 Dynamiczne tworzenie obiektów klas Składniki statyczne klas Konstruktor i destruktory c.d. 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD
Bardziej szczegółowoKurs 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ółowoProgramowanie 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ółowoPHP 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ółowoKlasy 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ółowoProgramowanie 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ółowoC++ - 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ółowo2. 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ółowoProgramowanie obiektowe
Programowanie obiektowe Wykład 2: Wstęp do języka Java 3/4/2013 S.Deniziak: Programowanie obiektowe - Java 1 Cechy języka Java Wszystko jest obiektem Nie ma zmiennych globalnych Nie ma funkcji globalnych
Bardziej szczegółowoJę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ółowoTworzenie 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ółowoWYKONANIE 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ółowoMarcin 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ółowoJę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ółowoTEMAT : 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ółowoAplikacje 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ółowoInteraktywne 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ółowoObiekt 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ółowoJę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ółowoPWSG Ć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ółowoProgramowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz
Programowanie obiektowe Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Java P. L. Lemay, Naughton R. Cadenhead Java Podręcznik 2 dla kaŝdego Języka Programowania Java Linki Krzysztof Boone oprogramowania
Bardziej szczegółowoKurs 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ółowoProgramowanie 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ółowoLaboratorium 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ółowoProgramowanie 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ółowoWykł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ółowoJę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ółowoMarcin Luckner Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych
Marcin Luckner Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych mluckner@mini.pw.edu.pl http://www.mini.pw.edu.pl/~lucknerm Programy w Javie składają się z pakietów Pakiety zawierają definicje
Bardziej szczegółowoProgramowanie 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ółowoProgramowanie 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ółowoGraphic 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ółowoMateriał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ółowoDOSTĘ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ółowoProgramowanie 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