Modu 6 Kompozycja i dziedziczenie

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

Download "Modu 6 Kompozycja i dziedziczenie"

Transkrypt

1 MODU 6 KOMPOZYCJA I DZIEDZICZENIE 59 Modu 6 Kompozycja i dziedziczenie Zawarto jednostki Po zrealizowaniu jednostki bdziesz w stanie: wykorzystywa istniejcy kod programu, w celu jego rozszerzenia tworzy nowe klasy pochodne, na podstawie klas ju istniejcych operowa skadowymi klas nadrzdnych grupowa pliki aplikacji w formie pakietów Wprowadzenie do zagadnie Idea programowania zorientowanego obiektowo umoliwia wielokrotne wykorzystanie istniejcego kodu programu. Dziki temu moliwe jest uycie istniejcych klas bez naruszania ich implementacji realizujc tym samym ide programowania przyrostowego. Podej%cie obiektowe w programowaniu dostarcza mechanizmów umoliwiajcych atwe wyraanie zwizków poj odnoszcych si do modelowanej rzeczywisto%ci. Najcz%ciej spotykane to kompozycja oraz dziedziczenie. Kompozycja Kompozycja 70 wyraa relacj skada si z lub posiada. Tworzona klasa skada si moe z dowolnej liczby obiektów, tworzonych na podstawie istniejcych ju klas. Poniszy diagram UML ilustruje zwizki wystpujce pomidzy uytymi klasami. Osoba - imie : String - nazwisko : String - telefon : Telefon - wiek : int + pobierznazwisko() : String + ustawnazwisko(string) : void Telefon - nrtelefonu : String - lacznyczasrozmow : int - cenarozmowy : double + zadzwon(string) : void + obliczkwotedozaplaty () : double + ustawcenerozmowy (double) : void Rysunek 3. Relacja kompozycji. Poniszy kod programu zawiera definicj klasy Osoba wykorzystujc jako pola obiekty dwóch innych klas, String oraz Telefon. 70 Kompozycja jest szczególnym przypadkiem agregacji i oznacza, i obiekty skadowe nie mog istnie bez obiektu gównego.

2 MODU 6 KOMPOZYCJA I DZIEDZICZENIE 60 class Osoba { // deklaracja pól private String imie; // kompozycja (wykorzystujemy klas+ String) private String nazwisko; // kompozycja (wykorzystujemy klas+ String) private Telefon telefon; // kompozycja (wykorzystujemy klas+ Telefon) private int wiek; // przyk,adowy konstruktor public Osoba(String imie, String nazwisko, Telefon telefon, int wiek){ this.imie = imie; this.nazwisko = nazwisko; this.telefon = telefon; this.wiek = wiek; // przyk,adowe metody public String pobierznazwisko() { return nazwisko; public void ustawnazwisko(string nazwisko) { this.nazwisko = nazwisko; Proces tworzenia nowego obiektu klasy Osoba wraz z obiektami zalenymi (Telefon) zosta przedstawiony poniej: Osoba adam = new Osoba ("Adam", "Kowalski", new Telefon(" "), 21); Dziedziczenie W celu okre%lenia, i jedno pojcie jest uszczegóowieniem (lub uogólnieniem) innego stosowane jest dziedziczenie. Wyraa ono relacj jest i jest wykorzystywane wszdzie tam, gdzie naley wskaza, i 2 pojcia s do siebie podobne. Realizacja dziedziczenia polega na tym, i nowo tworzona klasa przejmuje wszelkie cechy i zachowania z klas ju istniejcych, dodajc bd5 te modyfikujc je, aby byy one bardziej wyspecjalizowane. Dziki temu powstaje nowa klasa, okre%lana terminem podklasa (ang. subclass) lub klasa pochodna, natomiast klasa, z której dokonano dziedziczenia to nadklasa (ang. superclass) 71 lub klasa bazowa. 71 W literaturze nazwy podklasy i klasy bazowej zwizane s równie z pojciami dziecka (ang. child) i rodzica (ang. parent)

3 MODU 6 KOMPOZYCJA I DZIEDZICZENIE 61 Telefon - nrtelefonu : String - lacznyczasrozmow : int - cenarozmowy : double + zadzwon(string) : void + obliczkwotedozaplaty() : double + ustawcenerozmowy(double) : void TelefonStacjonarny - prefiks : String TelefonKomorkowy - operator : String + wyslijsms(string, String) : void TelefonInternetowy - identyfikator : String + sprawdzpolaczenie() : boolean Rysunek 4. Relacja dziedziczenia ( klasa Telefon oraz klasy pochodne). Dziedziczenie w jzyku Java realizowane jest za pomoc sowa kluczowego extends 72 po którym nastpuje nazwa klasy, z której dziedziczone s jej skadowe: class Student extends Osoba { // cia,o klasy (sk,adowe klasy) Klasa Student rozszerza (dziedziczy) klas Osoba. W tym przypadku Osoba jest klas bazow, natomiast Student klas pochodn, która dziedziczy wszystkie dostpne pola i metody klasy bazowej 73. W klasie pochodnej moliwe jest: deklarowanie nowych pól, które nie wystpuj w klasie bazowej oraz tworzenie nowych pól o takiej samej nazwie, ukrywajc zarazem pola oryginalne z klasy bazowej 74, deklarowanie metod, które nie wystpuj w klasie bazowej oraz tworzenie nowych metod o takiej samej sygnaturze 75. Rozszerzajc moliwo%ci przykadowej klasy Telefon mona na jej podstawie utworzy dwie nowe klasy: TelefonKomorkowy i TelefonStacjonarny. Klasy te posiadaj nowe cechy (np. operator, prefiks), jak i zachowania (np. wy%lij SMS). Kada z klas posiada równie wasn implementacj metody zadzwon(string). Tworzc nowe obiekty mona posugiwa si równie typem klasy bazowej (zarówno telefon stacjonarny jak i komórkowy jest przecie telefonem 76 ). 72 Dziedziczenie w Javie jest jednokrotne (kada klasa dziedziczy tylko z jednej klasy). Klasy, które jawnie nie posiadaj zadeklarowanego dziedziczenia (brak sowa kluczowego extends w nagówku), domy%lnie dziedzicz z klasy Object. 73 Konstruktory nie s dziedziczone. 74 Tworzenie w klasie pochodnej pól o takiej samej nazwie jak w klasie bazowej nie jest zalecane. 75 Tworzenie w klasie pochodnej metod o takiej samej sygnaturze jak metody w klasie bazowej nazywane jest przesanianiem metod (ang. override). 76 Taki sposób tworzenia obiektów nazywany jest rzutowaniem w gór (ang. upcasting).

4 MODU 6 KOMPOZYCJA I DZIEDZICZENIE 62 class TelefonKomorkowy extends Telefon { // nowe pole String operator; // konstruktor public TelefonKomorkowy (String numer, String operator) { super(numer); // wywo,anie konstruktora klasy bazowej this.operator = operator; // nowa metoda public void wyslijsms(string nrtelefonu, String tresc) { System.out.println ("Wysylam SMS'a o tresci: " + tresc); System.out.println ("pod numer: " + nrtelefonu); // nowa implementacja metody zadzwon (metoda przes,oni+ta) public void zadzwon(string nrtelefonu) { System.out.println ("Dzwonie z komórki do: " + nrtelefonu); class TelefonStacjonarny extends Telefon { // nowe pole String prefiks; // konstruktor public TelefonStacjonarny (String numer, String prefiks) { super(numer); this.prefiks = prefiks; // nowa implementacja metody zadzwon (metoda przes,oni+ta) public void zadzwon(string nrtelefonu) { System.out.println ("Dzwonie ze stacjonarnego do: " + nrtelefonu); class TelefonInternetowy extends Telefon { // nowe pole String identyfikator; // konstruktory public TelefonInternetowy (String numer, String identyfikator) { super(numer); this.identyfikator = identyfikator; // nowa metoda public boolean sprawdzpolaczenie() { return true; // nowa implementacja metody zadzwon (metoda przes,oni+ta) public void zadzwon(string nrtelefonu) { if(sprawdzpolaczenie()) System.out.println ("Dzwonie z internetowego do: " + nrtelefonu); else System.out.println ("Brak polaczenia z internetem"); public class Test { public static void main(string args[]) { Telefon telefonjasia = new Telefon(" "); Telefon komorkamarka = new TelefonKomorkowy(" ", "Era"); Telefon stacjonarnykasi = new TelefonStacjonarny(" ", "1044"); Telefon InternetowyAni = new TelefonInternetowy(" ", "Anula7");

5 MODU 6 KOMPOZYCJA I DZIEDZICZENIE 63 Polimorfizm Zarówno kompozycja, jak i dziedziczenie, które pozwala kojarzy klasy obiektów w hierarchie klas, nale do fundamentalnych wasno%ci podej%cia obiektowego. Umoliwiaj one realizacj idei programowania przyrostowego oraz pó5niejsz szybk modyfikacj kodu programu. Tworzc obiekty na podstawie klas dziedziczcych z innych klas, mona jako zmienn referencyjn poda typ klasy bazowej 77. Wywoujc pó5niej odpowiednie metody kompilator Javy zadecyduje, która z nich ma zosta wykonana (na podstawie typu obiektu, na rzecz, którego s one wywoane). Taki sposób wywoania metod nazywany jest polimorfizmem. Poniszy przykad przedstawia tablic elementów klasy Telefon. Poszczególne elementy tablicy zawieraj referencje zarówno do obiektów klasy Telefon, jak równie do obiektów utworzonych na podstawie klas pochodnych (TelefonKomorkowy, TelefonStacjonarny). Telefon[] tablicatelefonow = new Telefon[4]; tablicatelefonow[0] = new Telefon(" "); tablicatelefonow[1] = new TelefonKomorkowy(" ", "Orange"); tablicatelefonow[2] = new TelefonStacjonarny(" ", "1033"); tablicatelefonow[3] = new TelefonInternetowy(" ", "lech23"); Wywoanie dla kadego obiektu znajdujcego si w tablicy tablicatelefonow metody zadzwon("112") bdzie wywoaniem polimorficznym. W zaleno%ci od klasy obiektu wywoana zostanie odpowiednia metoda. for (Telefon tel : tablicatelefonow) tel.zadzwon("112"); Pakiety Powizane ze sob klasy i interfejsy 78 umieszczane s w jednostkach bibliotecznych zwanych pakietami (ang. package). Takie grupowanie pozwala na szybsze odnalezienie wa%ciwych klas i interfejsów, jak równie wpywa korzystnie na przejrzysto% pisanych aplikacji. Dodatkowe zalety pakietów to m.in.: jasne okre%lenie zwizków/powizaa midzy klasami, unikanie konfliktu nazw 79, moliwo% skorzystania z dodatkowych modyfikatorów dostpu 80. Pakiety tworzy si poprzez uycie w kodzie 5ródowym programu sowa kluczowego package 81, po którym wystpuje nazwa pakietu 82. Okre%la to lokalizacj pliku skompilowanego (.class), który musi zosta umieszczony w podanym pakiecie (folderze) 83 : package telefonia; package uczelnia.podstawy.narzedzia; Pakiety posiadaj tak sam struktur, jak katalogi w systemie plików (mog by równie zagniedone). Utworzenie pakietu uczelnia.podstawy.narzedzia jest równoznaczne z utworzeniem struktury katalogów na dysku (.../uczelnia/podstawy/narzedzia). Wszystkie pliki nalece do tego pakietu powinny znale5 si w przytoczonej lokalizacji. Korzystanie z elementów pakietu umoliwia 77 Mona uy równie nazwy interfejsu, który dana klasa implementuje. 78 Tematyka interfejsów zostanie omówiona w nastpnym module. 79 Pakiety umoliwiaj korzystanie z klas lub interfejsów o takiej samej nazwie ale innej strukturze (np. róne pakiety, taka sama nazwa klasy) 80 Modyfikator package 81 Sowo package musi pojawi si jako pierwsza instrukcja programu. 82 Nazwy pakietów zawieraj tylko mae litery i s tworzone na kilka sposobów (np. odwrotna %cieka domeny internetowej firmy, w której powsta dany pakiet) 83 Naley pamita, i spoza pakietu dostp jest moliwy tylko to elementów publicznych danego pakietu (klasy, interfejsy). Klasy, które nie okre%laj przynaleno%ci do konkretnego pakietu s grupowane w tak zwany pakiet domy%lny nie posiadajcy adnej nazwy.

6 MODU 6 KOMPOZYCJA I DZIEDZICZENIE 64 sowo kluczowe import, po którym wystpuje nazwa pakietu oraz nazwa klasy, bd5 te znak gwiazdki symbolizujcy wszystkie klasy nalece do wskazanego pakietu 84. // wszystkie sk,adowe pakietów telefonia oraz uczelnia.podstawy.narzedzia si dost+pne import telefonia.*; import uczelnia.podstawy.narzedzia.*; Nazwa pakietów dostarczanych wraz z Jav rozpoczyna si od sowa java (pakiety zwizane ze specyfikacj jzyka) bd5 te javax (rozszerzenie specyfikacji). Pojcia dodatkowe KLASA OBJECT Object 85 jest gówn klas, z której po%rednio lub bezpo%rednio dziedzicz wszystkie klasy. Zawiera ona szereg metod uatwiajcych operacje na obiektach. Najwaniejsze z nich to 86 : clone() tworzy kopi obiektu, tostring() zwraca reprezentacj obiektu w formie aacucha tekstowego, equals(object) porównuje dwa obiekty, getclass() zwraca nazw klasy na podstawie, której powsta obiekt. Najcz%ciej uywane to tostring() oraz equals(object), które przesaniane s w klasach pochodnych. OPERATOR INSTANCEOF Operator instanceof suy do sprawdzenia czy dany obiekt naley do wskazanej klasy. Przyjmuje on warto% (true lub false). W przypadku prawdy mamy pewno%, i dany obiekt naley do wskazanej klasy lub te dowolnej podklasy. boolean sprawdzenie = telefonani instanceof Telefon; SOWO KLUCZOWE SUPER Dostp do skadowych klasy bazowej z klasy dziedziczcej moliwy jest za pomoc sowa kluczowego super. W ten sposób mona równie odwoywa si do konstruktorów klasy nadrzdnej 87 (nie s one dziedziczone). Wywoanie konstruktora klasy bazowej musi by pierwsz instrukcj w ciele konstruktora podklasy. Pytania sprawdzajce 1. Czym jest kompozycja w programowaniu obiektowym? 2. Wska rónice pomidzy pojciami klasa bazowa, a podklasa. 3. Jakie skadowe klasy bazowej dziedziczy podklasa? 4. Czy kada klasa w Javie dziedziczy z innej klasy? Czy moe dziedziczy z wielu klas? 5. Wyja%nij pojcie polimorfizmu. 6. Jakie zadania spenia klasa Object? Jakimi metodami dysponuje? 7. Podaj przykady uycia metody tostring() z klasy Object? 8. Jakie jest zadanie operatora instanceof? 84 Kompilator Javy szuka klas wykorzystujc %ciek zbudowan ze zmiennej %rodowiskowej CLASSPATH oraz nazwy konkretnego pakietu (kropki w pakiecie zostaj zastpione znakiem /). 85 Klasa Object jest jedyn klas nie posiadajc klasy bazowej. Znajduje si ona na szczycie hierarchii klas. 86 Pozostae metody zwizane s z synchronizacj wtków, generowaniem unikalnych kluczy dla obiektów oraz czyszczeniem pamici przy usuwaniu obiektów. 87 Warto pamita o sytuacji gdy konstruktor podklasy nie wywouje jawnie konstruktora z klasy bazowej. W takich sytuacjach Java automatycznie wywoa konstruktor domy%lny (bezparametrowy) klasy bazowej.

7 MODU 6 KOMPOZYCJA I DZIEDZICZENIE Wska rónice pomidzy sowami kluczowymi this i super. 10. Wska zalety uywania pakietów. 11. W jaki sposób moliwe jest skorzystanie z klas znajdujcych si we wskazanym pakiecie? 12. W którym miejscu i w jaki sposób w klasie dziedziczcej z przykadowej klasy Radio moliwe jest odwoanie si do konstruktora klasy bazowej o sygnaturze Radio(String)? 13. Czy mona przesoni metod equals(object)? Je%li tak, to jakie zadanie bdzie spenia ta metoda? Zadania do wykonania KOMPOZYCJA Zadanie 106 Pojazd.java Pojazd jest %rodkiem transportu uatwiajcym przemieszczanie si. Aby byo to moliwe, musi posiada napd (silnik). Utwórz uproszczony model pojazdu wraz z silnikiem. Rozwi%zanie Poniszy kod programu zawiera klas reprezentujc samochód oraz silnik pojazdu. Zwró uwag na relacje zachodzce pomidzy wystpujcymi klasami. Jaki to typ relacji?

8 MODU 6 KOMPOZYCJA I DZIEDZICZENIE 66 public class Pojazd { private String nazwa; private Silnik silnik; public Pojazd(String pnazwa, String ptypsilnika) { nazwa = pnazwa; silnik = new Silnik(ptypSilnika); public void ruszaj(){ System.out.println("Wsiadam do mojego " + nazwa); silnik.zapal(); System.out.println("Ruszam - gaz do dechy... i w drog+..."); public void zatrzymaj(){ System.out.println("Zatrzymuj+ si+ z piskiem opon..."); silnik.zgas(); System.out.println("Wychodz+ z samochodu..."); public static void main(string[] args) { Pojazd pojazd = new Pojazd("Audi Quattro","Turbo Diesel"); pojazd.ruszaj(); pojazd.zatrzymaj(); class Silnik { private String typ; Silnik(String ptyp){ typ = ptyp; public void zapal(){ System.out.println("Zapalam silnik..." + typ); public void zgas(){ System.out.println("Gasz+ silnik..."); public String pobierztyp(){ return typ; Zadanie 107 Restauracja.java Restauracja Europa skada si z dwóch sal dla palcych oraz niepalcych. Kada sala mie%ci okre%lon liczb go%ci i wyposaona jest w stoy, krzesa oraz telewizor. Dodatkowo sala dla palcych posiada stó do snookera. Wykorzystujc Jav, utwórz model restauracji oraz wszystkie jej elementy skadowe. Utwórz przykadowy stan sal (sala 1 48 miejsc, sala 2 32 miejsca). Dodaj losowo go%ci znajdujcych si w poszczególnych salach. Wy%wietl na konsoli informacje prezentujce stan rzeczywisty restauracji (liczba go%ci w kadej sali, liczba wolnych stolików, stan zajto%ci stou do snookera, nazwa programu aktualnie nadawanego w TV, itp.).wykorzystaj kompozycj oraz poznane pojcia. Wskazówka Utwórz klasy: Restauracja, Sala, Stol, Krzeslo, Telewizor, Snooker, Gosc DZIEDZICZENIE I POLIFORMIZM Zadanie 108 Zwierzeta.java Na podwórzu gospodarskim biegaj zwierzta domowe (pies, kot, krowa), wydajce odgosy. Przedstaw przy pomocy jzyka Java zaistnia sytuacj. Rozwi%zanie Poniszy kod programu zawiera rozwizanie zadania. Zwró uwag na relacje zachodzce pomidzy klasami. Czy potrafisz je scharakteryzowa? W jaki sposób wywoywana jest metoda dajglos()?

9 MODU 6 KOMPOZYCJA I DZIEDZICZENIE 67 public class Zwierzeta { public static void main(string[] args) { Zwierze[] zwierzeta = new Zwierze[3]; zwierzeta[0] = new Pies(); zwierzeta[1] = new Kot(); zwierzeta[2] = new Krowa(); System.out.println("Rykowisko..."); for(zwierze zwierze: zwierzeta){ zwierze.dajglos(); class Zwierze { private String nazwa; public void dajglos(){ System.out.println("G,os zwierz+cia"); class Pies extends Zwierze { public void dajglos(){ System.out.println("hau hau"); class Kot extends Zwierze { public void dajglos(){ System.out.println("miau miau"); class Krowa extends Zwierze { public void dajglos(){ System.out.println("muuuuu"); Zadanie 109 MiniZoo.java Rodzice maego Kornela utworzyli na swojej posiado%ci mae zoo. Aktualnie przebywaj tam pandy, mapy oraz kucyki. Teo to 3 letni mi% panda. W zoo mieszka wraz ze swoimi maymi 5 miesicznymi synkami Pikiem i Mikiem. Romi i Tysia to dwie 4 letnie mapki. Inwentarz dopeniaj 3 kucyki, 2 letni Gatek, 3 letni Kajtek i 5 letni Taksel. 3 razy dziennie wszystkie zwierzta otrzymuj pokarm. Cay czas znana jest liczebno% zoo. Je%li zoo przyjmuje nowe zwierz (lub te rodzi si jakie%), liczba zwierzt zwiksza si. Utwórz reprezentacj zoo w postaci odpowiednich klas. Stwórz obiekty odzwierciedlajce kadego mieszkaaca, jak i cae zoo. Przedstaw w postaci metod wieczorne karmienie zwierzt oraz narodziny nowej mapki Igi. Wy%wietl wszystkie zwierzta wraz z ich wiekiem. Wykorzystaj dziedziczenie oraz polimorfizm. Wskazówka Niezbdne klasy: Zoo, Zwierze, Panda, Malpa, Kucyk Zadanie 110 Punkty.java, Punkt.java Napisz program umoliwiajcy okre%lanie oraz zmian lokalizacji (przesuwanie) punktów na paszczy5nie. Rozwi%zanie Utwórz klas Punkt, opisujc dowolny punkt na paszczy5nie. Klas Punkt utwórz w oddzielnym pliku.java.

10 MODU 6 KOMPOZYCJA I DZIEDZICZENIE 68 public class Punkt { private int x,y; // wspó,rz+dne punktu public Punkt(int px, int py){ x = px; y = py; public int pobierzx(){ return x; public int pobierzy(){ return y; public void ustawx(int px){ x = px; public void ustawy(int py){ y = py; public void przesun(int dx, int dy){ x += dx; y += dy; public String tostring(){ return String.format("(%d,%d)",x,y); Zasadnicza cz% programu (w tym metoda main()) zawarta jest w klasie Punkty. Dokonujc kompilacji programu wystarczy skompilowa kod zawarty w pliku Punkty.java. Ze wzgldu na wystpujce odwoania, kompilacja pliku Punkt.java zostanie przeprowadzona automatycznie. public class Punkty { public static void main(string[] args) { Punkt punkta = new Punkt(3,7); Punkt punktb = new Punkt(2,11); Punkt punktc = new Punkt(6,5); System.out.print("Wspó,rz+dne punktów: "); System.out.printf("%s %s %s\n",punkta,punktb,punktc); System.out.println("Zmiana po,orenia punktów..."); punkta.przesun(2,-1); punktb.przesun(2,-1); punktc.przesun(2,-1); System.out.print("Wspó,rz+dne punktów: "); System.out.printf("%s %s %s\n",punkta,punktb,punktc); Zadanie 111 Odcinki.java, Punkt.java Napisz program okre%lajcy pooenie odcinka na paszczy5nie, na podstawie wspórzdnych punktów AB, a take okre%lanie jego dugo%ci. Rozwi%zanie Wykorzystaj poprzednio zdefiniowan klas Punkt.

11 MODU 6 KOMPOZYCJA I DZIEDZICZENIE 69 public class Odcinki { public static void main(string[] args) { Odcinek odcinek = new Odcinek( new Punkt(2,3), new Punkt(7,4) ); System.out.println(odcinek); System.out.println("Zmiana po,orenia odcinka..."); odcinek.przesun(-1,4); System.out.println(odcinek); class Odcinek { private Punkt punkta,punktb; // wspó,rz+dne kosców odcinka public Odcinek(Punkt ppunkta, Punkt ppunktb){ punkta = ppunkta; punktb = ppunktb; public double dlugosc(){ int xpunkta = punkta.pobierzx(); int ypunkta = punkta.pobierzy(); int xpunktb = punktb.pobierzx(); int ypunktb = punktb.pobierzy(); return Math.sqrt( (xpunkta-xpunktb)*(xpunkta-xpunktb) + (ypunkta-ypunktb)*(ypunkta-ypunktb) ); public void przesun(int dx, int dy){ punkta.przesun(dx,dy); punktb.przesun(dx,dy); public String tostring(){ String opis; opis = String.format("Odcinek: A%s,B%s,", punkta,punktb); opis += String.format(" d,ugotu %3.1f", dlugosc()); return opis; Zadanie 112 Rysunek.java, Kolo.java, Prostokat.java, Punkt.java Napisz program, który umoliwi umieszczanie figur geometrycznych na paszczy5nie. Rozwi%zanie Wykorzystaj uprzednio zdefiniowan klas Punkt.

12 MODU 6 KOMPOZYCJA I DZIEDZICZENIE 70 public class Rysunek { int liczbafigur = 0; Figura[] figury; public Rysunek(int pmaxliczbafigur){ figury = new Figura[pmaxLiczbaFigur]; public void dodajfigure(figura nowafigura){ figury[liczbafigur++] = nowafigura; public void przesun(int dx, int dy){ for(int i=0; i<liczbafigur; i++) figury[i].przesun(dx,dy); public String tostring(){ String s = ""; for(int i=0; i<liczbafigur; i++) s += figury[i] + "\n"; return s; public static void main(string[] args) { Rysunek rysunek = new Rysunek(8); rysunek.dodajfigure(new Kolo(new Punkt(2,5),7)); rysunek.dodajfigure(new Prostokat( new Punkt(5,2), new Punkt(5,4), new Punkt(1,4), new Punkt(1,2) )); rysunek.dodajfigure(new Kolo(new Punkt(4,1),3)); rysunek.dodajfigure(new Kolo(new Punkt(8,9),1)); rysunek.dodajfigure(new Prostokat( new Punkt(3,0), new Punkt(4,0), new Punkt(4,8), new Punkt(3,8) )); System.out.println(rysunek); System.out.println("Przesuni+cie figur..."); rysunek.przesun(3,-1); System.out.println(rysunek); public class Kolo extends Figura { private Punkt punkta; // Trodek ko,a private int r; // promies public Kolo(Punkt ppunkta, int pr){ punkta = ppunkta; r = pr; public double obliczpole(){ return Math.PI * r * r; public double obliczobwod(){ return 2 * Math.PI * r; public void przesun(int dx, int dy){ punkta.przesun(dx,dy); public String tostring(){ return String.format("Ko,o: A%s, r=%d, pole=%f, obwód=%f", punkta,r,obliczpole(),obliczobwod() ); public class Prostokat extends Figura { private Punkt punkta,punktb,punktc,punktd; // wspó,rz+dne wierzcho,ków public Prostokat(Punkt ppunkta, Punkt ppunktb, Punkt ppunktc, Punkt ppunktd) { punkta = ppunkta; punktb = ppunktb; punktc = ppunktc; punktd = ppunktd;

13 MODU 6 KOMPOZYCJA I DZIEDZICZENIE 71 // odleg,otu pomiedzy 2 punktami private double obliczxy(punkt px, Punkt py){ int xpunkta = px.pobierzx(); int ypunkta = px.pobierzy(); int xpunktb = py.pobierzx(); int ypunktb = py.pobierzy(); return Math.sqrt( (xpunkta-xpunktb)*(xpunkta-xpunktb) + (ypunkta-ypunktb)*(ypunkta-ypunktb) ); public double obliczpole(){ double a = obliczxy(punkta,punktb); double b = obliczxy(punkta,punktd); return a*b; public double obliczobwod(){ double a = obliczxy(punkta,punktb); double b = obliczxy(punkta,punktd); return 2*a + 2*b; public void przesun(int dx, int dy){ punkta.przesun(dx,dy); punktb.przesun(dx,dy); punktc.przesun(dx,dy); punktd.przesun(dx,dy); public String tostring(){ return String.format("ProstokIt: A%s, B%s, C%s, D%s ", punkta,punktb,punktc,punktd) + String.format("pole=%f, obwód=%f",obliczpole(),obliczobwod()); Zadanie 113 Trojkat.java, Trapez.java, Romb.java Uzupenij program Rysunek.java o moliwo% umieszczania na paszczy5nie kolejnych figur geometrycznych (romb, traper oraz trójkt). Zadanie 114 KreatorFakturVAT.java Firma Handlowa-Usuga MORINEX sp. z o.o. wdraa system komputerowy wspomagajcy prowadzenie dziaalno%ci gospodarczej. Jednym z jego elementów jest oprogramowanie wspomagajce wystawianie faktur VAT. Napisz program, który realizowa bdzie podan funkcjonalno%. Rozwi%zanie Faktura VAT zawiera nastpujce informacje: numer faktury, data sprzeday, dane sprzedawcy (nazwa, adres, kod pocztowy, miejscowo%, NIP), dane nabywcy (nazwa, adres, kod pocztowy, miejscowo%, NIP), wykaz sprzedanych produktów (towarów i/lub usug), czna kwota brutto do zapaty. W skad listy produktów wchodz towary lub usugi. Kady towar charakteryzuje: nazwa towaru, jednostka miary, ilo%, cena jednostkowa netto, warto% netto, stawka VAT (3, 7 lub 22%), warto% brutto. W przypadku usug s to: nazwa usugi, liczba roboczogodzin, cena roboczogodziny, warto% netto, stawka VAT (7 lub 22%), warto% brutto. Gdy usuga wykonywana jest w sobot lub niedziel, cena roboczogodziny wzrasta o 50%. Ogólny schemat wystpujcych zaleno%ci przedstawiony zosta na poniszym diagramie UML:

14 MODU 6 KOMPOZYCJA I DZIEDZICZENIE 72 Produkt Faktura - nrtelefonu : String - Towar Usuga Rysunek 5. Diagram UML dziedziczenie dla faktury VAT. Natomiast przykadow posta faktury przedstawiono poniej: FAKTURA VAT nr Data sprzedary: SPRZEDAWCA: Firma Us,ugowo-Handlowa MORINEX ul. Koszykowa 15, Kraków NIP NABYWCA: Firma VENPOL SA ul. D,uga 8/7, Kraków NIP Nazwa towaru/us,ugi j.m. cena ilotu wart.netto st.vat wart.brutto Kalosze m+skie szt 12, , ,02 Cement kg 3, , ,28 MontaR instalacji godz. 38, , , Razem do zap,aty: 1395,92 z, METODY KLASY OBJECT Zadanie 115 PorownanieObiektow.java System komputerowy dziekanatu uczelni zawiera dane studentów, którzy rozróniani s na podstawie numeru albumu. Warunkiem koniecznym jest zapewnienie unikalno%ci numerów (kady student powinien posiada róny nr albumu). Zaprojektuj prost klas reprezentujc studenta (pola: imi, nazwisko, nr albumu). Utwórz przykadowych studentów o rónych i takich samych numerach albumu. Sprawd5, jak warto% zwraca porównanie obiektów zawierajcych taki sam numer albumu. Wykorzystaj przesanianie metody equals(object) do porównania obiektów oraz tostring() do ich wy%wietlania. TWORZENIE PAKIETÓW Zadanie 116 TelefonKasi.java Grupowanie klas zwizanych z podobnymi zadaniami uatwia tworzenie aplikacji. Utwórz pakiet telefonia grupujcy wszystkie klasy dotyczce telefonów. Wykorzystaj pakiet importujc z niego klasy potrzebne do utworzenia telefonu komórkowego Kasi (o numerze w sieci Plus) oraz wy%lij z niego o SMS o tre%ci "Zadanie z pakietem wykonane", na numer

15 MODU 6 KOMPOZYCJA I DZIEDZICZENIE 73 Rozwi%zanie Klasy tworzce pakiet telefonia powinny by klasami publicznymi 88. Kady z kodów 5ródowych jako pierwsz instrukcj musi posiada sowo kluczowe package wraz z nazw pakietu. package telefonia; public class Telefon { // cia,o klasy (sk,adowe klasy) package telefonia; public class TelefonKomorkowy extends Telefon { // cia,o klasy (sk,adowe klasy) package telefonia; public class TelefonStacjonarny extends Telefon { // cia,o klasy (sk,adowe klasy) package telefonia; public class TelefonInternetowy extends Telefon { // cia,o klasy (sk,adowe klasy) import telefonia.*; public class TelefonKasi { TelefonKomorkowy telefonkasi = new TelefonKomorkowy (" ","Plus"); telefonkasi.wyslijsms(" ","zadanie z pakietem wykonane"); Zadanie 117 FlotaPojazdow.java Flota pojazdów firmy SPEED skada si samochodów ciarowych oraz osobowych. W%ród tych ostatnich wystpuj samochody subowe oraz prywatne. Liczebno% na dziea przedstawiaa si nastpujco: 4 wywrotki Scania 2 cigniki siodowe MAN 2 samochody Mercedes (subowe) 3 samochody Fiat Punto (subowe) 5 samochodów Ford Fiesta (prywatnych, uyczonych na potrzeby firmy) Zaprojektuj klasy odpowiadajce strukturze floty pojazdów w firmie SPEED wraz z przykadowymi wa%ciwo%ciami. W zaleno%ci od kategorii, umie% klasy w oddzielnych pakietach. Utwórz obiekty wg podanej specyfikacji. 88 Nazwa klasy publicznej musi by taka sama jak nazwa pliku 5ródowego. W przykadowym rozwizaniu kada z klas publicznych musi posiada osobny plik 5ródowy.

Kompozycja i dziedziczenie klas

Kompozycja i dziedziczenie klas Programowanie obiektowe Kompozycja i dziedziczenie klas Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Kompozycja i dziedziczenie klas

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

Modu 5 - Klasy i obiekty

Modu 5 - Klasy i obiekty MODU 5 - KLASY I OBIEKTY 45 Modu 5 - Klasy i obiekty Zawarto jednostki Po zrealizowaniu jednostki bdziesz w stanie: wskaza rónice midzy klas, a obiektem prawidowo tworzy klasy z wykorzystaniem pól i metod

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

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

Programowanie Obiektowe

Programowanie Obiektowe Programowanie Obiektowe dr in. Piotr Zabawa IBM/Rational Certified Consultant pzabawa@pk.edu.pl WYKŁAD 1 Wstp, jzyki, obiektowo Cele wykładu Zaznajomienie słuchaczy z głównymi cechami obiektowoci Przedstawienie

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

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

Technologie i usługi internetowe cz. 2

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

Bardziej szczegółowo

Programowanie 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

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

Kurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016 Wykład 2 17 marca 2016 Dziedziczenie Klasy bazowe i potomne Dziedziczenie jest łatwym sposobem rozwijania oprogramowania. Majac klasę bazowa możemy ja uszczegółowić (dodać nowe pola i metody) nie przepisujac

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Dziedziczenie Dana jest klasa Punkt w pliku o nazwie Punkt.java:

Dziedziczenie Dana jest klasa Punkt w pliku o nazwie Punkt.java: Dziedziczenie Dana jest klasa Punkt w pliku o nazwie Punkt.java: p u b l i c c l a s s Punkt { i n t x, y ; Punkt ( ) { x = 1 ; y = 1 ; Punkt ( i n t wspx, i n t wspy ) { x = wspx ; y = wspy ; Punkt (

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Programowanie obiektowe

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

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 2 Marcin Młotkowski 4 marca 2015 Plan wykładu 1 2 3 4 5 Marcin Młotkowski Programowanie obiektowe 2 / 47 Krótki opis C Obiektowy, z kontrolą typów; automatyczne odśmiecanie;

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

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 5: Dziedziczenie i polimorfizm 3/24/2013 S.Deniziak: Programowanie obiektowe - Java 1 Kompozycja klas class Drzewo { class Krzew { class Las { Drzewo drzewostan[ ]; Krzew

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

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

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

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

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

Przykład -

Przykład - Polimorfizm Przykład - http://rpodhajny.wordpress.com klasa bazowa A, oraz klasy pochodne B1, B2,, Bn (dziedziczące po klasie bazowej). niektóre klasy pochodne chcą mieć możliwość skorzystania z metody

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

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

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

Języki i techniki programowania Ćwiczenia 3 Dziedziczenie

Języki i techniki programowania Ćwiczenia 3 Dziedziczenie Języki i techniki programowania Ćwiczenia 3 Dziedziczenie Klasa abstrakcyjna Autor: Marcin Orchel Klasa abstrakcyjna to taka, że nie możemy tworzyć obiektów tej klasy, możemy jednak dziedziczyć po tej

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

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

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

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

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

Bardziej szczegółowo

Kompozycja i dziedziczenie klas

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

Bardziej szczegółowo

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

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 5 Marcin Młotkowski 23 marca 2017 Plan wykładu 1 2 3 4 5 Marcin Młotkowski Programowanie obiektowe 2 / 50 Historia Początkowe założenia Projekt OAK Sterowanie urządzeniami

Bardziej szczegółowo

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

Programowanie obiektowe

Programowanie obiektowe Wykład 2 28 lutego 2019 Plan wykładu 1 2 3 4 5 Plan wykładu 1 2 3 4 5 Krótki opis C Obiektowy, z kontrolą typów; automatyczne odśmiecanie; standardy ISO i ECMA; podobny składniowo do C++; Język C Krótka

Bardziej szczegółowo

Programowanie obiektowe i zdarzeniowe

Programowanie obiektowe i zdarzeniowe Marek Tabędzki Programowanie obiektowe i zdarzeniowe 1/23 Programowanie obiektowe i zdarzeniowe wykład 6 polimorfizm Na poprzednim wykładzie: dziedziczenie jest sposobem na utworzenie nowej klasy na podstawie

Bardziej szczegółowo

Bazy danych Podstawy teoretyczne

Bazy danych Podstawy teoretyczne Pojcia podstawowe Baza Danych jest to zbiór danych o okrelonej strukturze zapisany w nieulotnej pamici, mogcy zaspokoi potrzeby wielu u!ytkowników korzystajcych z niego w sposóbs selektywny w dogodnym

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Laboratorium z przedmiotu Programowanie obiektowe - zestaw 02 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas i obiektów z wykorzystaniem dziedziczenia.

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

1. Klasa typu sealed. Przykład 1. sealed class Standard{ class NowyStandard:Standard{ // błd!!!

1. Klasa typu sealed. Przykład 1. sealed class Standard{ class NowyStandard:Standard{ // błd!!! Temat: Klasy typu sealed. Klasy abstrakcyjne. Deklaracja i implementacja interfejsu. Typ Object i operatory is oraz as. Czas ycia obiektu. Destruktory. 1. Klasa typu sealed Przykład 1 Klasa typu sealed

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

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

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

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji. JAVA Java jest wszechstronnym językiem programowania, zorientowanym obiektowo, dostarczającym możliwość uruchamiania apletów oraz samodzielnych aplikacji. Java nie jest typowym kompilatorem. Źródłowy kod

Bardziej szczegółowo

Program Sprzeda wersja 2011 Korekty rabatowe

Program Sprzeda wersja 2011 Korekty rabatowe Autor: Jacek Bielecki Ostatnia zmiana: 14 marca 2011 Wersja: 2011 Spis treci Program Sprzeda wersja 2011 Korekty rabatowe PROGRAM SPRZEDA WERSJA 2011 KOREKTY RABATOWE... 1 Spis treci... 1 Aktywacja funkcjonalnoci...

Bardziej szczegółowo

JAVA- wykład 2 Klasy

JAVA- wykład 2 Klasy JAVA- wykład 2 Klasy 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/ C. S. Horstmann, G. Cornell,

Bardziej szczegółowo

UML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami.

UML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami. UML a kod w C++ i Javie Projektowanie oprogramowania Dokumentowanie oprogramowania Diagramy przypadków użycia Przewoznik Zarzadzanie pojazdami Optymalizacja Uzytkownik Wydawanie opinii Zarzadzanie uzytkownikami

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

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

Modu 1 rodowisko programistyczne

Modu 1 rodowisko programistyczne MODU 1 RODOWISKO PROGRAMISTYCZNE 2 Modu 1 rodowisko programistyczne Zawarto jednostki Po zrealizowaniu jednostki bdziesz w stanie: uruchomi prost aplikacj z wykorzystaniem konsoli lub rodowiska programistycznego

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

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 i klasy wewnętrzne

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

Bardziej szczegółowo

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

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

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

Bardziej szczegółowo

Wstęp do programowania obiektowego. WYKŁAD 3 Dziedziczenie Pola i funkcje statyczne Funkcje zaprzyjaźnione, this

Wstęp do programowania obiektowego. WYKŁAD 3 Dziedziczenie Pola i funkcje statyczne Funkcje zaprzyjaźnione, this Wstęp do programowania obiektowego WYKŁAD 3 Dziedziczenie Pola i funkcje statyczne Funkcje zaprzyjaźnione, this 1 Nazwa typu Rozmiar Zakres Uwagi bool 1 bit wartości true albo false stdbool.h TYPY ZNAKOWE

Bardziej szczegółowo

Programowanie w środowisku graficznym- wykład 2 Java - Klasy

Programowanie w środowisku graficznym- wykład 2 Java - Klasy Programowanie w środowisku graficznym- wykład 2 Java - Klasy 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

0.1 Hierarchia klas. 0.1.1 Diagram. 0.1.2 Krótkie wyjaśnienie

0.1 Hierarchia klas. 0.1.1 Diagram. 0.1.2 Krótkie wyjaśnienie 0.1 Hierarchia klas 0.1.1 Diagram 0.1.2 Krótkie wyjaśnienie Po pierwsze to jest tylko przykładowe rozwiązanie. Zarówno na wtorkowych i czwartkowych ćwiczeniach odbiegaliśmy od niego, ale nie wiele. Na

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

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

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

Bardziej szczegółowo

Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych

Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych Obiekty reprezentują pewne pojęcia, przedmioty, elementy rzeczywistości. Obiekty udostępniają swoje usługi: metody operacje,

Bardziej szczegółowo

Przypomnienie o klasach i obiektach

Przypomnienie o klasach i obiektach Wykład 14 Programowanie obiektowe ciąg dalszy, str 1 Przypomnienie o klasach i obiektach -5 należydo int 314 należy do double false należy do boolean {27, 314,-15 należy do double[] wartość należy do typ

Bardziej szczegółowo

Java Język programowania

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

Bardziej szczegółowo

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

Laboratorium z przedmiotu: Inżynieria Oprogramowania INEK Instrukcja 7

Laboratorium z przedmiotu: Inżynieria Oprogramowania INEK Instrukcja 7 Instrukcja 7 Laboratoria 9, 10 Opracowanie diagramów sekwencji dla wybranych przypadków użycia reprezentujących usługi oprogramowania wynikających również z wykonanych diagramów czynności; definicja operacji

Bardziej szczegółowo

Definiowanie własnych klas

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

Bardziej szczegółowo

Diagram klas UML jest statycznym diagramem, przedstawiającym strukturę aplikacji bądź systemu w paradygmacie programowania obiektowego.

Diagram klas UML jest statycznym diagramem, przedstawiającym strukturę aplikacji bądź systemu w paradygmacie programowania obiektowego. Umiejętność czytania oraz tworzenia diagramów klas UML jest podstawą w przypadku zawodu programisty. Z takimi diagramami będziesz spotykał się w przeciągu całej swojej kariery. Diagramy klas UML są zawsze

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

Programowanie w Javie wykład 7 Klasy c.d. (przeciążanie metod, polimorfizm) Metody i klasy abstrakcyjne Bloki inicjalizacyjne

Programowanie w Javie wykład 7 Klasy c.d. (przeciążanie metod, polimorfizm) Metody i klasy abstrakcyjne Bloki inicjalizacyjne 1 Programowanie w Javie wykład 7 Klasy c.d. (przeciążanie metod, polimorfizm) Metody i klasy abstrakcyjne Bloki inicjalizacyjne Treści prezentowane w wykładzie zostały oparte o: Barteczko, JAVA Programowanie

Bardziej szczegółowo

Sposoby przekazywania parametrów w metodach.

Sposoby przekazywania parametrów w metodach. Temat: Definiowanie i wywoływanie metod. Zmienne lokalne w metodach. Sposoby przekazywania parametrów w metodach. Pojcia klasy i obiektu wprowadzenie. 1. Definiowanie i wywoływanie metod W dotychczas omawianych

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

Enkapsulacja, dziedziczenie, polimorfizm

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

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Laboratorium z przedmiotu - zestaw 02 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas i obiektów z wykorzystaniem dziedziczenia. Wprowadzenie teoretyczne.

Bardziej szczegółowo

Pierwsze kroki. Algorytmy, niektóre zasady programowania, kompilacja, pierwszy program i jego struktura

Pierwsze kroki. Algorytmy, niektóre zasady programowania, kompilacja, pierwszy program i jego struktura Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Pierwsze kroki Algorytmy, niektóre zasady programowania, kompilacja, pierwszy program i jego struktura Co znaczy

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

Typy bazy danych Textract

Typy bazy danych Textract Typy bazy danych Typy bazy danych bazy tekstowe, Textract, http://www.textract.com - bazy tekstowe, np. archiwum gazety, dla setek gigabajtów, szybkie wyszukiwanie i indeksacja informacji bazy danych bez

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

Dziedziczenie i interfejsy

Dziedziczenie i interfejsy Dziedziczenie i interfejsy Wyróżnia się dwa sposoby ponownego wykorzystania klas: Kompozycję oznacza, że obiekt jest zawarty w innym obiekcie i jest reprezentowana przez relację całość-część. Przykładowo

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

dr inż. Piotr Czapiewski Tworzenie aplikacji w języku Java Laboratorium 1

dr inż. Piotr Czapiewski Tworzenie aplikacji w języku Java Laboratorium 1 Ćwiczenie 1 Uruchamianie programu w Netbeans Uruchom środowisko Netbeans. Stwórz nowy projekt typu Java Application. Nadaj projektowi nazwę HelloWorld (Project Name), zwróć uwagę na folder, w którym zostanie

Bardziej szczegółowo

Mechanizm dziedziczenia

Mechanizm dziedziczenia Mechanizm dziedziczenia Programowanie obiektowe jako realizacja koncepcji ponownego wykorzystania kodu Jak przebiega proces dziedziczenia? Weryfikacja formalna poprawności dziedziczenia Realizacja dziedziczenia

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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

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

Pakiety i interfejsy. Tomasz Borzyszkowski

Pakiety i interfejsy. Tomasz Borzyszkowski Pakiety i interfejsy Tomasz Borzyszkowski Pakiety podstawy W dotychczasowych przykładach nazwy klas musiały pochodzić z jednej przestrzeni nazw, tj. być niepowtarzalne tak, by nie doprowadzić do kolizji

Bardziej szczegółowo

> C++ dziedziczenie. Dane: Iwona Polak. Uniwersytet Śląski Instytut Informatyki

> C++ dziedziczenie. Dane: Iwona Polak. Uniwersytet Śląski Instytut Informatyki > C++ dziedziczenie Dane: Iwona Polak iwona.polak@us.edu.pl Uniwersytet Śląski Instytut Informatyki 1432108800 > Dziedziczenie Dziedziczenie C++ dziedziczenie 2 / 13 > Dziedziczenie Dziedziczenie * to

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

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

KLASY, INTERFEJSY, ITP

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

Bardziej szczegółowo

Zaawansowane programowanie w języku C++ Programowanie obiektowe

Zaawansowane programowanie w języku C++ Programowanie obiektowe Zaawansowane programowanie w języku C++ Programowanie obiektowe Prezentacja jest współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie pt. Innowacyjna dydaktyka

Bardziej szczegółowo

Java: interfejsy i klasy wewnętrzne

Java: interfejsy i klasy wewnętrzne Java: interfejsy i klasy wewnętrzne Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak 1 INTERFEJSY Interfejs to opis co klasa implementująca dany interfejs powinna robić, ale bez określania

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

Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego. Iwona Kochaoska

Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego. Iwona Kochaoska Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego Iwona Kochaoska Programowanie Obiektowe Programowanie obiektowe (ang. object-oriented programming) - metodyka tworzenia programów komputerowych,

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

Platformy Programistyczne Podstawy języka Java

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

Bardziej szczegółowo

Akademia ETI. Wprowadzenie do programowania w Javie PG Java User Group Przemysław Kulesza

Akademia ETI. Wprowadzenie do programowania w Javie PG Java User Group Przemysław Kulesza Akademia ETI Wprowadzenie do programowania w Javie PG Java User Group 1 Dlaczego Java? Najpopularniejszy język programowania obiektowego Łatwy w nauce Dostępny na wiele platform 2 Platformy Java Java Standard

Bardziej szczegółowo

Podczas dziedziczenia obiekt klasy pochodnej może być wskazywany przez wskaźnik typu klasy bazowej.

Podczas dziedziczenia obiekt klasy pochodnej może być wskazywany przez wskaźnik typu klasy bazowej. Polimorfizm jest filarem programowania obiektowego, nie tylko jeżeli chodzi o język C++. Daje on programiście dużą elastyczność podczas pisania programu. Polimorfizm jest ściśle związany z metodami wirtualnymi.

Bardziej szczegółowo