Programowanie obiektowe
|
|
- Wacława Stankiewicz
- 5 lat temu
- Przeglądów:
Transkrypt
1 Programowanie obiektowe II. Dziedziczenie Małgorzata Prolejko OBI JA16Z03
2 Plan Klasy bazowe i pochodne. Hierarchia dziedziczenia. Polimorfizm. Wiązanie dynamiczne. Ograniczenie dziedziczenia, klasy i metody finalne. Rzutowanie. Klasy i metody abstrakcyjne. Klasa Object: metody equals, tostring i hashcode. Klasy wyliczeniowe. Szablony klas Kolekcje Adnotacje
3 Klasy bazowe i pochodne Klasa bazowa nadklasa, klasa rozszerzana, klasa której pola i metody zostaną odziedziczone. Najbardziej ogólna z klas hierarchii Klasa pochodna podklasa, klasa rozszerzająca, klasa zawierająca pola i metody z nadklasy oraz własne pola i metody. Klasa bardziej szczegółowa. public class Baza{... public class Pochodna extends Baza{... Klasa bazowa Klasa pochodna
4 Hierarchia dziedziczenia Dziedziczenie może odbywać się wielopoziomowo. Klasa bazowa może mieć wiele klas pochodnych, a klasy pochodne mogą posiadać swoje podklasy. Powiązania dziedziczenia pomiędzy klasami nazywają się hierarchią dziedziczenia. public class Czytelnik{ Czytelnik public class Pracownik extends Czytelnik{ public class Student extends Czytelnik{ Public class Absolwent extends Student{ Pracownik Student Absolwent
5 Polimorfizm Obiekty różnych podklas jednej nadklasy mogą być wspólnie obsługiwane w granicach stosowalności nadklasy. public class Czytelnik{ private String numerkarty; public Czytelnik(String nr){numerkarty = nr; public String getnumerkarty(){return numerkarty; Czytelnik[] czytelnicy = new Czytelnik[3]; czytelnicy[0] = new Student("1"); czytelnicy[1] = new Student("2"); czytelnicy[2] = new Pracownik("3"); for (Czytelnik c: czytelnicy) { System.out.println(c.getNumerKarty()); package test11
6 Wiązania dynamiczne Wiązania dynamiczne to poszukiwanie metody odpowiedniej do klasy obiektu wywołującego. public class Czytelnik{... public String getnumerkarty(){return numerkarty; public class Pracownik extends Czytelnik{... public String getnumerkarty(){return "p-"+numerkarty; Czytelnik czytelnicy = new Czytelnik[3]; czytelnicy[0] = new Czytelnik("1"); czytelnicy[1] = new Student("2"); czytelnicy[2] = new Pracownik("3"); for (Czytelnik c: czytelnicy) { System.out.println(c.getNumerKarty()); package test12
7 Polimorfizm Ćwiczenie 10. Zaimplementuj klasy do systemu nagród. Są nagrody główne: za 1-sze, 2-gie i 3-cie miejsce oraz nagrody specjalne. Nagrody główne składają się z części pieniężnej, upominku* oraz pucharu*. Nagrody specjalne składają się z upominku* oraz dyplomu*. Nagrody przyznawane są w 3 kategoriach: Jakość, Szybkość i Cena. * można przyjąć że są typu String
8 Polimorfizm Ćwiczenie 10. public class Nagroda { private final String upominek; private final String kategoria; public Nagroda(String upo, String kat){ upominek = upo; kategoria = kat.touppercase(); public String gettext(){ return "kategoria:"+kategoria+", upominek:"+upominek;
9 Polimorfizm Ćwiczenie 10. public class NagrodaSpecjalna extends Nagroda { private String dyplom; public NagrodaSpecjalna(String upo, String kat, String dyp){ super(upo,kat); dyplom = public String gettext(){ return super.gettext() + ", dyplom:"+dyplom;
10 Polimorfizm Ćwiczenie 10. public class NagrodaGlowna extends Nagroda { private String puchar; private int wartosc; private int miejsce; public NagrodaGlowna(String upo, String kat, String pu, int w, int mie){ super(upo,kat); puchar = pu; wartosc = w; miejsce = public String gettext(){ return super.gettext() +", miejsce:"+miejsce+ ", puchar:"+puchar + ", wartość:"+wartosc +"zł";
11 Polimorfizm public class Test { public static void main(string[] args) { Ćwiczenie 10. Nagroda nagrody[] = new Nagroda[12]; nagrody[0] = new NagrodaGlowna("książka", "JAKOSC", "duży puchar", 1000, 1); nagrody[1] = new NagrodaGlowna("książka", "cena", "duży puchar", 1000, 1); nagrody[2] = new NagrodaGlowna("książka", "SZYbkosc", "duży puchar", 1000, 1);... nagrody[11] = new NagrodaSpecjalna("kubeczki", "szybkosc", "Dyplom za innowacje"); for(nagroda n: nagrody){ System.out.println(n.getText());
12 Ograniczenie dziedziczenia Jeżeli nie chcemy aby dana klasa, bądź metoda była rozszerzana, można dodać do niej modyfikator final. Klasa opatrzona tym modyfikatorem nie może zostać nadklasą. Metoda opatrzona tym modyfikatorem nie może być przedefiniowana w podklasach. Dzięki oznaczaniu metod jako finalnych nie ma potrzeby używania wiązania dynamicznego (czasochłonnego) oraz zabezpieczamy kod przed niekontrolowanym przedefiniowaniem. public class Czytelnik{ private String numerkarty; public final void setnumerkarty(string nr){numerkarty = nr; public final String getnumerkarty(){return numerkarty;
13 Rzutowanie Rzutowanie jest zmianą typu obiektu na nowy (o ile to ma sens). Rzutowaniu mogą podlegać liczby double pi = 3.14; int p = (int) pi; bądź obiekty z jednej hierarchii dziedziczenia Czytelnik[] c = new Czytelnik[2]; c[0] = new Pracownik(); Pracownik p = (Pracownik) c[0]; package test13
14 Klasy i metody abstrakcyjne Niektóre klasy nie powinny posiadać obiektów. Jeżeli klasa tylko definiuje podstawowe pola i metody dla klas dziedziczących to jest klasą abstrakcyjną i oznacza się ją słowem kluczowym abstract. Klasa abstrakcyjna posiada metody abstrakcyjne, które są deklaracją metody, ale bez jej implementacji. Klasa pochodna, która ma tworzyć obiekty musi implementować wszystkie abstrakcyjne metody z nadklasy. public abstract class Czytelnik{ private String numerkarty; public abstract void wyswietl(); public class Pracownik extends Czytelnik{ public void wyswietl(){ System.out.println("Pracownik o nr: " + numerkarty); package test14
15 Klasa Object Klasa Object jest najbardziej ogólną klasą, po której dziedziczą wszystkie klasy Javy. Nie trzeba nawet dodawać tego dziedziczenia w kodzie. class Czytelnik{... class Czytelnik extends Object{... Dzięki wspólnej nadklasie, możliwe jest przechowywanie dowolnych referencji w zmiennych typu Object. Powrót do pierwotnego typu nastąpi wtedy przez rzutowanie. Object o = new Czytelnik(); Czytelnik c = (Czytelnik) o;
16 Klasa Object equals() Dzięki wspólnej nadklasie, wszystkie klasy implementują metodę equals() dzięki której możliwe jest porównywanie referencji do dwóch obiektów. Jeżeli obie referencje wskazują na to samo miejsce w pamięci, to zwracana jest wartość true. Czytelnik c1 = new Czytelnik(); Czytelnik c2 = new Czytelnik(); Czytelnik c3 = c1; c1.equals(c2); //false c1.equals(c3); //true Czytelnik Czytelnik Aby porównać stany dwóch obiektów należy tą metodę przeładować. c1 c2 c3 package test15
17 Klasa Object Uniwersalna metoda tostring() zwraca łańcuch znakowy będący reprezentację obiektu. tostring() Czytelnik c = new Czytelnik(); System.out.println(c.toString()); W każdej klasie można przeładować tą metodę uzyskując własną wersję reprezentacji znakowej. class Czytelnik{ public String tostring(){ return Mój czytelnik"; package test16
18 Klasa Object Zaimplementuj metody equals i tostring dla następującej klasy: public class Uzytkownik{ private String nazwakonta; private String haslo; private Date datarejestracji; public Uzytkownik(String nazwa, String has){ nazwakonta = nazwa; haslo = has; datarejestracji = new Date(); Ćwiczenie 11.
19 Klasa Object Ćwiczenie 11. public boolean equals(object o){ Uzytkownik1 u; Boolean takiesame = false; try{ u = (Uzytkownik1) o; takiesame = datarejestracji.compareto(u.getdatarejestracji())==0 && nazwakonta.equals(u.getnazwakonta()) && haslo.equals(u.gethaslo()); catch(classcastexception e){ System.out.println(e); return takiesame; public String tostring(){ SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.YYYY"); return "konto:"+ nazwakonta + " zarejestrowane:"+ sdf.format(datarejestracji.gettime());
20 Klasy wyliczeniowe Oprócz typów liczbowych można zadeklarować typ wyliczeniowy enum, który z góry definiuje wszystkie możliwe wartości zmiennej. Traktowany jest jak klasa. Powinien być umieszczony w osobnym pliku. enum PoraRoku{ WIOSNA, LATO, JESIEN, ZIMA; Klasy enum mogą posiadać konstruktory i własne metody. enum PoraRoku{ WIOSNA("marzec"), LATO("czerwiec"), JESIEN("wrzesien"), ZIMA("grudzien"); private String poczatekporyroku; private PoraRoku(String poczatek){poczatekporyroku = początek; public void wypisz(){ System.out.println(this + " zaczyna się w: " + poczatekporyroku); PoraRoku p = PoraRoku.WIOSNA; p.wypisz(); PoraRoku.LATO.wypisz(); package test17
21 Szablony klas - lista Istnieje czasem potrzeba, aby klasa obsługiwała różne typy danych zachowując przy tym ten sam zestaw operacji -> np. lista. Lista jest sposobem przechowywania wielu obiektów o tym samym typie. Umożliwia dodanie, wyszukanie bądź usunięcie obiektu. Ma zmienną długość. Można by utworzyć klasę która posiada pole będące obiektem oraz wskaźnik(referencję) na następny element ElementListy Obiekt 1 ElementListy Obiekt 2 ElementListy Obiekt 3 obiekt obiekt obiekt następny następny następny
22 Szablony klas Aby taki system działał dla dowolnych obiektów, pole obiekt musiałoby być typu Object. Przechowywanie elementów w takiej liście miałoby jednak bardzo dużą wadę: można by umieścić w niej obiekty dowolnych klas i zgubić typ podstawowy class ElementListy { private Object obiekt; private ElementListy nastepny; public ElementListy(Object o){ obiekt = o; public void dodajliste(elementlisty el){ nastepny = el; public Object getobiekt(){return obiekt; String s = bum ; Integer i = 3; ElementListy el1 = new ElementListy(s); ElementListy el2 = new ElementListy(i); el1.dodajliste(el2); package test18
23 Szablony klas Dostanie podstawowego typu wymaga rzutowania zwężającego musimy wcześniej znać typ obiektu. Jeżeli w liście są wymieszane typy, to jest to pracochłonne zadanie. Z tego powodu wprowadzono szablony klas i typy generyczne (generics). Mechanizm ten pozwala na utworzenie klasy, w której niektóre typy danych dopiero zostaną zdefiniowane podczas konstruowania obiektu. class ElementListy<T> { private T obiekt; private ElementListy<T> nastepny; public ElementListy(T o){ obiekt = o; public void dodajliste(elementlisty<t> el){ nastepny = el; public T getobiekt(){return obiekt; ElementListy<String> = new ElementListy<String>( bum );
24 Szablony klas Teraz nie będzie możliwości łączenia list z różnymi typami danych. Już podczas kompilacji sprawdzone zostaną typy. class ElementListy<T> { private T obiekt; private ElementListy<T> nastepny; public ElementListy(T o){ obiekt = o; public void dodajliste(elementlisty<t> el){ nastepny = el; public T getobiekt(){return obiekt; String s = bum ; Integer i = 3; ElementListy<String> el1 = new ElementListy<String>(s); ElementListy<Integer> el2 = new ElementListy<Integer>(i); el1.dodajliste(el2); //błąd!!! package test19
25 Szablony klas Zaproponuj klasę do przechowywania punktu płaszczyzny. Ćwiczenie 12. Dodaj dwa obiekty: - jeden punkt na rastrze(współrzędne opisane tylko przez liczby całkowite) - oraz jeden punkt na ciągłej płaszczyźnie (współrzędne opisane przez liczby rzeczywiste).
26 Szablony klas public class Punkt<T> { private T x; private T y; Ćwiczenie 12. public Punkt(T nx, T ny){ x = nx; y = ny; public T getx(){return x; public T gety(){return y; public void setpunkt(t nx, T ny){ x = nx; y = ny; Punkt<Integer> p1 = new Punkt<Integer>(1,2); Punkt<Float> p1 = new Punkt<Float>(1.1f,2.2f);
27 Szablony klas W szablonie może być więcej niż jeden zmienny typ generyczny. class Para<T,S> { private T pierwszyelementpary; private S drugielementpary;... Para<String,String> p1 = new Para<String,String>( aaa, bbb ); Para<String,Integer> p2 = new Para<String,Integer>( aaa,1); Para<Integer,String> p3 = new Para<Integer,String>(2, bbb ); Zawarte między znakami <> typy(np. String,String) nazywane są argumentami typu. Klasa Para<S,T> nazywana jest sparametryzowaną, a klasy Para<String,String> instancjami sparametryzowanej klasy Para<S,T> package test20
28 Szablony klas typy Niech będzie dana klasa sparametryzowana Box<T> posiadająca element i statyczny numer liczący liczbę instancji tej klasy. class Box<T> { private T element; public static int licznik=0; public Box(T e){ element = e; licznik++; public int getlicznik(){return licznik; Referencja na obiekt typu T Statyczne pole klasy inicjowane 0 Zwiększanie licznika Czy obiekty o różnych argumentach typów będą miały tą samą wartość numeru? package test21
29 Szablony klas typ surowy class Box<T> { private T element; public static int licznik=0;... public int getlicznik(){return licznik; Box<String> b1 = new Box<String>( aaa ); b1.getlicznik(); //1 Box<Integer> b2 = new Box<Integer>(3); b1.getlicznik(); //2 b2.getlicznik(); //2 Mimo różnych instancji klasy sparametryzowanej Box<T>, przechowywana w pamięci jest tylko jedna klasa Box (już bez parametrów) i jest to typ surowy. Dlatego pole statyczne jest wspólne dla obiektów b1 i b2. package test21
30 Szablony klas czyszczenie typów class Box<T> { private T element; public static int numer=0;... public T getelement(){return element; public void setelement(t e){element = e; Przechowywane w pamięci metody tracą argumenty typu, który zostaje zastąpiony przez Object. Mechanizm ten nazywa się czyszczeniem typów. Można sprawdzić typy przechowywane za pomocą mechanizmu refleksji. import java.lang.reflect.*; Box<String> b = new Box<String>( aaa ); Class klasa = b.getclass(); System.out.println(klasa); Method[] metody = klasa.getdeclaredmethods(); for (Method m : metody) System.out.println(m); Pakiet refleksji Pobranie klasy danego obiektu Pobranie listy metod z danej klasy package test22
31 Szablony klas ograniczanie typów W deklaracji klasy sparametryzowanej nie znamy typu, który dopiero podczas tworzenia obiektu zostanie podany. Dlatego nie można wewnątrz takiej klasy używać metod specyficznych dla pewnego typu obiektu. Jedyne które są dozwolone to metody klasy Object, ponieważ wszystkie klasy po niej dziedziczą. Jeżeli do działania potrzebowalibyśmy metody z konkretnej klasy, musimy zapewnić że typ obiektu będzie taką metodę posiadał. Można to zrobić stosując ograniczenie parametrów typu. Po extends dopisujemy klasy, bądź interfejsy, które typ T musi implementować. Dzięki temu można używać metod z nich. class Box<T extends String> { private T element; public static int numer=0;... public String wypisz(){return element.touppercase(); T musi teraz dziedziczyć po klasie String. Dzięki temu można wywołać metodę touppercase specyficzną dla tej klasy. Klasa String jest górnym ograniczeniem typu. package test23
32 Szablony klas Ćwiczenie 13. Dopisz metodę do klasy Punkt pozwalającą na obliczenie odległości między dwoma punktami.
33 Szablony klas public class Punkt<T extends Number> { private T x; private T y; Ćwiczenie 13. public T getx(){return x; public T gety(){return y; public double odleglosc(punkt<t> p2){ return Math.sqrt( Math.pow(x.doubleValue() - p2.getx().doublevalue(),2.0)+ Math.pow(y.doubleValue() - p2.gety().doublevalue(),2.0));
34 Szablony klas public class Test { Ćwiczenie 13. public static void main(string[] args) { Punkt<Integer> p1 = new Punkt<Integer>(1,2); Punkt<Integer> p2 = new Punkt<Integer>(4,5); Punkt<Float> p3 = new Punkt<Float>(1.1f,2.1f); Punkt<Float> p4 = new Punkt<Float>(2.1f,3.1f); System.out.println("Punkt["+p1.getX() +";"+p1.gety()+"]"); System.out.println("Punkt["+p2.getX() +";"+p2.gety()+"]"); System.out.println(p1.odleglosc(p2)); System.out.println(p3.odleglosc(p4));
35 Szablony klas parametry uniwersalne Czasem wymagane jest aby można było korzystać z możliwości dziedziczenia klas sparametryzowanych. Ponieważ po kompilacji wszystkie typy stają się surowe nie da się zapewnić, że będzie zgodność zarówno klas jak ich parametrów. Box<Integer> extends Box<Number> Wprowadzono zatem parametry uniwersalne? (wildcards). Dzięki temu można - zastosować ograniczenie górne: - dowolny podtyp A <? extends A> - zastosować ograniczenie dolne: - dowolny nadtyp A <? super A> - zastosować pełną dowolność: dowolny typ <?> Box<Integer> extends Box<? extends Number> Box<? super Integer> extends Box<Number> Box<Integer> extends Box<?>
36 Szablony klas Ćwiczenie 13a. Dopisz metodę do klasy Punkt pozwalającą na obliczenie odległości między dwoma punktami, bez względu na to jakiego typu są.
37 Szablony klas public class Punkt<T extends Number> { private T x; private T y; Ćwiczenie 13a. public T getx(){return x; public T gety(){return y; public double odleglosc(punkt<?> p2){ return Math.sqrt( Math.pow(x.doubleValue() - p2.getx().doublevalue(),2.0)+ Math.pow(y.doubleValue() - p2.gety().doublevalue(),2.0)); Punkt<Integer> p1 = new Punkt<Integer>(4,5);Punkt<Float> p2 = new Punkt<Float>(1.1f,2.1f); System.out.println(p1.odleglosc(p2));
38 Szablony klas parametry uniwersalne Czytelnik Lista<Czytelnik> SortLista<Czytelnik> Pracownik Lista<Pracownik> SortLista<Pracownik> Ochroniarz Lista<Ochroniarz> SortLista<Ochroniarz> Lista<T> SortLista<T> Lista<Czytelnik> lczyt1 = new Lista<Czytelnik>(new Czytelnik()); Lista<Czytelnik> lczyt2 = new Lista<Pracownik>(new Pracownik()); //Błąd!!! Lista<? extends Czytelnik> lczyt2 = new Lista<Pracownik>(new Pracownik()); Lista<? super Pracownik> lczyt3 = new Lista<Czytelnik>(p); package test24
39 Szablony klas Stosowanie typów sparametryzowanych (tu w skrócie ts.) ma pewne ograniczenia. Ts. może być typem pól, argumentów i wyniku metod Ts. nie mogą być typem pola statycznego, bo dla różnych instancji klas sparametryzowanych pola statyczne są wspólne. Można rzutować zmienne do ts., ale i tak po kompilacji zostanie zastosowanie czyszczenia typów. Nie można tworzyć obiektów ts. ponieważ nie wiadomo jakiego konstruktora używać. Można wywoływać metody jedynie z klasy do której nastąpi czyszczenie typów(zwykle Object, chyba że zastosowano ograniczenie typu) Nie można wywoływać metod konkretnej klasy, ponieważ nie wiadomo jaka będzie.
40 Szablony klas Stosowanie typów sparametryzowanych (tu w skrócie ts.) ma pewne ograniczenia. Ts. może być typem pól, argumentów i wyniku metod Nie można przeciążać metod tylko poprzez zmianę jednego ts. na inny, ponieważ po czyszczeniu typów oba zostaną zastąpione przez Object void set(t t1){ void set(s t2){ -> void set(object t1){ -> void set(object t1){ Można wywoływać metody jedynie z klasy do której nastąpi czyszczenie typów(zwykle Object, chyba że zastosowano ograniczenie typu) Nie można wywoływać metod konkretnej klasy, ponieważ nie wiadomo jaka będzie.
41 Kolekcje Jednym z najczęstszych zastosowań szablonów są kolekcje. Są to struktury przechowujące dowolne dane: Zbiór java.util.set przechowuje dowolną liczbę obiektów, nie zapamiętuje kolejności Lista java.util.list przechowuje obiekty w kolejności i możemy się odwoływać do każdego z nich po numerze indeksu Kolejka java.util.queue przechowuje obiekty w kolejności, ale dodaje się zawsze elementy na koniec, a obsługuje elementy z końca (kolejka LIFO(First In-Last Out)) albo z początku (FIFO(First In-First Out)) Mapa java.util.map przechowuje pary elementów klucz-wartość. Kolejność jest nieistotna, odwołujemy się do elementu po kluczu.
42 Kolekcje Aby utworzyć kolekcję trzeba wybrać jedną z implementacji: Zbiór java.util.set implementują HashSet LinkedHashSet TreeSet Lista java.util.list implementują ArrayList LinkedList Kolejkę java.util.queue implementują LinkedList PriorityQueue Mapa java.util.map implementują HashMap LinkedHashMap TreeMap
43 Adnotacje Adnotacje są fragmentem kodu rozpoczynającym się który pozwala kompilatorowi na interpretację kodu. Jedną z najczęściej stosowanych adnotacji którą oznacza się metody przysłaniające te z nadklasy, bądź implementacji interfejsów. Dzięki temu kompilator może sprawdzić czy na pewno sygnatury się zgadzają i zawczasu poinformować o problemie. Adnotacje używane są podczas obsługi formularzy lub baz danych, dzięki czemu można sprawniej zarządzać kodem.
44 Praca domowa 2. Do systemu rezerwacji biletów lotniczych dopisz funkcjonalności: 1. Klient może rezerwować więcej niż jeden lot. 2. Rezerwowany bilet można anulować. 3. Za bilet można zapłacić. Nieopłacony bilet nie może zostać odprawiony. 4. Bilet można odprawić wraz z bagażem. 5. Lot posiada listę pasażerów lub biletów. 6. Lot można zrealizować, po czym bilety na ten lot usuwane są z listy u pasażerów. 7. Miejsca wylotu/przylotu są klasami. Lot je wykorzystuje. 8. Do rodzaju bagażu (lub taryfy biletu, rodzaju ulgi) użyte są typy wyliczeniowe. 9. Stan obiektu wypisuje na konsolę jedna metoda tej klasy. 10.Cena biletu wyliczana jest na podstawie długości trasy, taryfy/ulgi i zadeklarowanego bagażu.
Metody sparametryzowane
Metody sparametryzowane Nie tylko klasy i pola można parametryzować. Parametry typu można zastosować również do pojedynczych metod. Podstawienie typu zostanie wykonane podczas wywołania metody. class Box
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ół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ół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ółowoProgramowanie obiektowe
Programowanie obiektowe III. Refleksja Małgorzata Prolejko OBI JA16Z03 Plan Klasa Class. Analiza funkcjonalności klasy. Podstawy obsługi wyjątków. Zastosowanie refleksji do analizy obiektów. Wywoływanie
Bardziej szczegół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 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ół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ół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ół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ół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ółowoTYPY GENERYCZNE (GENERICS)
TYPY GENERYCZNE (GENERICS) ZAGADNIENIA: wprowadzenie, konwencje, metody, typy surowe parametry ograniczone podtypy, dziedziczenie, symbole wieloznaczne, ograniczenia. MATERIAŁY: http://docs.oracle.com/javase/tutorial/java/generics/
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ół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ół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ół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 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ół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ółowoKurs programowania. Wykład 9. Wojciech Macyna. 28 kwiecień 2016
Wykład 9 28 kwiecień 2016 Java Collections Framework (w C++ Standard Template Library) Kolekcja (kontener) Obiekt grupujacy/przechowuj acy jakieś elementy (obiekty lub wartości). Przykładami kolekcji sa
Bardziej szczegół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ół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ółowoProgramowanie 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ół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 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ół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ół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ół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ółowoProgramowanie 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ółowo1. 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ół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ółowoProgramowanie 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ółowoEnkapsulacja, 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ół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ół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ół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ół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ółowoProgramowanie obiektowe Wykład 6. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/14
Dariusz Wardowski dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/14 Wirtualne destruktory class A int* a; A(int _a) a = new int(_a);} virtual ~A() delete a;} class B: public A double* b;
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ółowoPARADYGMATY PROGRAMOWANIA Wykład 4
PARADYGMATY PROGRAMOWANIA Wykład 4 Metody wirtualne i polimorfizm Metoda wirualna - metoda używana w identyczny sposób w całej hierarchii klas. Wybór funkcji, którą należy wykonać po wywołaniu metody wirtualnej
Bardziej szczegółowoPodstawy Programowania Obiektowego
Podstawy Programowania Obiektowego Wprowadzenie do programowania obiektowego. Pojęcie struktury i klasy. Spotkanie 03 Dr inż. Dariusz JĘDRZEJCZYK Tematyka wykładu Idea programowania obiektowego Definicja
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ół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ółowoWSNHiD, Programowanie 2 Lab. 2 Język Java struktura programu, dziedziczenie, abstrakcja, polimorfizm, interfejsy
WSNHiD, Programowanie 2 Lab. 2 Język Java struktura programu, dziedziczenie, abstrakcja, polimorfizm, interfejsy Pojęcie klasy Program napisany w języku Java składa się ze zbioru klas. Każda klasa zawiera
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ółowoJę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ółowoProgramowanie 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ółowojava.util.* :Kolekcje Tomasz Borzyszkowski
java.util.* :Kolekcje Tomasz Borzyszkowski Wstęp Kolekcje w Java dają programiście pewien standardowy sposób radzenia sobie z przetwarzaniem grup obiektów. Implementacja kolekcji w Java składa się z następujących
Bardziej szczegółowoJęzyk JAVA podstawy. Wykład 4, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna
Język JAVA podstawy Wykład 4, część 3 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ół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ółowoKurs programowania. Wykład 3. Wojciech Macyna. 22 marca 2019
Wykład 3 22 marca 2019 Klasy wewnętrzne Klasa wewnętrzna class A {... class B {... }... } Klasa B jest klasa wewnętrzna w klasie A. Klasa A jest klasa otaczajac a klasy B. Klasy wewnętrzne Właściwości
Bardziej szczegół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ółowoProgramowanie obiektowe - 1.
Programowanie obiektowe - 1 Mariusz.Masewicz@cs.put.poznan.pl Programowanie obiektowe Programowanie obiektowe (ang. object-oriented programming) to metodologia tworzenia programów komputerowych, która
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 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ółowoTypy sparametryzowane
Typy sparametryzowane Streszczenie Celem wykładu jest zaprezentowanie typów sparametryzowanych. Czas wykładu 90 minut. Istnieją algorytmy, których zasada działania nie zależy od typu danych wejściowych.
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ółowoDawid Gierszewski Adam Hanasko
Dawid Gierszewski Adam Hanasko Chcemy stworzyć klasę w której możemy przechowywać dwie zmienne dowolnych typów Tworzymy tyle różnych klas ile potrzeba: Class ParaInt{ int pierwszy; Int drugi; Class ParaButow{
Bardziej szczegółowoJava: 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ółowoRealizacja ekstensji klasy. Paulina Strzelecka, Tomasz Roszkowski
Realizacja ekstensji klasy Paulina Strzelecka, Tomasz Roszkowski Przechowywanie obiektów (odwolañ do obiektów) w Javie typ wbudowany - tablica zbiór klas kontenerowych Paulina Strzelecka, Tomasz Roszkowski
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ółowoGUI - projektowanie interfejsów cz. II
Katedra Inżynierii Wiedzy, Uniwersytet Ekonomiczny w Katowicach Wykład 2 Java Foundations Classes przyciski; pola tekstowe; panele; okna dialogowe; biblioteka Swing. Metodyka (paradygmat) programowania
Bardziej szczegółowoKurs programowania. Wykład 9. Wojciech Macyna
Wykład 9 Java Collections Framework (w C++ Standard Template Library) Kolekcja (kontener) Obiekt grupujacy/przechowuj acy jakieś elementy (obiekty lub wartości). Przykładami kolekcji sa zbiór, lista czy
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ółowoPlatformy 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ółowoDiagramy klas. dr Jarosław Skaruz http://ii3.uph.edu.pl/~jareks jaroslaw@skaruz.com
Diagramy klas dr Jarosław Skaruz http://ii3.uph.edu.pl/~jareks jaroslaw@skaruz.com O czym będzie? Notacja Ujęcie w różnych perspektywach Prezentacja atrybutów Operacje i metody Zależności Klasy aktywne,
Bardziej szczegółowoMechanizm dziedziczenia
Mechanizm dziedziczenia Programowanie obiektowe jako realizacja koncepcji ponownego wykorzystania kodu Jak przebiega proces dziedziczenia? Weryfikacja formalna poprawności dziedziczenia Realizacja dziedziczenia
Bardziej szczegółowoProgramowanie 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ółowoDefiniowanie 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.NET Klasy, obiekty. ciąg dalszy
.NET Klasy, obiekty ciąg dalszy Przeciążanie operatorów 1 W języku C# istnieje możliwość zdefiniowania funkcjonalności dużej części operatorów dla typów stworzonych przez użytkownika. Dzięki takiemu zabiegowi,
Bardziej szczegółowoDziedziczenie jednobazowe, poliformizm
Dziedziczenie jednobazowe, poliformizm 1. Dziedziczenie jednobazowe 2. Polimorfizm część pierwsza 3. Polimorfizm część druga Zofia Kruczkiewicz, ETE8305_6 1 Dziedziczenie jednobazowe, poliformizm 1. Dziedziczenie
Bardziej szczegółowoJę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ół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ółowoProgramowanie 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ółowoJęzyki i techniki programowania Ćwiczenia 4 Wzorce
Języki i techniki programowania Ćwiczenia 4 Wzorce Wzorce to metoda generacji różnych klas lub różnych funkcji. Autor: Marcin Orchel Przykład 1: Jeśli dana klasa C wykonuje obliczenia numeryczne, i wymaganiem
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ółowo1. Co można powiedzieć o poniższym kodzie (zakładając, że zaimportowano wszystkie niezbędne klasy)?
1. Co można powiedzieć o poniższym kodzie (zakładając, że zaimportowano wszystkie niezbędne klasy)? public static void test1() { Object[] o = new Object[] { "1", "2", "3" ; List l = new ArrayList(Arrays.asList(o));
Bardziej szczegółowoPolimorfizm a klasy generyczne w języku Java. Zdzisław Spławski 1
Polimorfizm a klasy generyczne w języku Java Zdzisław Spławski 1 Klasyfikacja polimorfizmów Polimorfizm ogólnie oznacza wielopostaciowość i umożliwia przypisanie różnych
Bardziej szczegółowoC++ - [4-7] Polimorfizm
Slajd 1 z 14 C++ - [4-7] Polimorfizm Nysa 2004-2013. Autor: Wojciech Galiński. wersja dnia 20 maja 2013 r. Slajd 2 z 14 Polimorfizm i klasa polimorficzna POLIMORFIZM (cytat z Wikipedii) (wielopostaciowość)
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ę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ółowoLaboratorium z przedmiotu: Inżynieria Oprogramowania INEK Instrukcja 6
Instrukcja 6 Laboratorium 8 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ół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ółowoProgramowanie obiektowe
Programowanie obiektowe Wykład 7: Typy uogólnione. Stringi. 4/21/2013 S.Deniziak: Programowanie obiektowe - Java 1 Jak operować na danych różnych typów? Wymagana zgodność typów Rzutowanie w górę Tylko
Bardziej szczegółowoProgramowanie Obiektowe (Java)
1. Wprowadzenie do kontenerów Wykład ósmy Kontenery s ą obiektami, które potrafi ą przechowywa ć inne obiekty w określony sposób. O kontenerach można myśle ć jako o gotowych do użycia strukturach danych.
Bardziej szczegół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 obiektowe
Programowanie obiektowe Wykład 13: RTTI 6/2/2013 S.Deniziak: Programowanie obiektowe - Java 1 Po co informacja o typie obiektu? Polimorfizm Kolekcje Deserializacja 6/2/2013 S.Deniziak: Programowanie obiektowe
Bardziej szczegółowoDziedziczenie 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ółowoProgramowanie w C++ Wykład 14. Katarzyna Grzelak. 3 czerwca K.Grzelak (Wykład 14) Programowanie w C++ 1 / 27
Programowanie w C++ Wykład 14 Katarzyna Grzelak 3 czerwca 2019 K.Grzelak (Wykład 14) Programowanie w C++ 1 / 27 Na ostatnim wykładzie: Konstruktor standardowy (domyślny) to taki, który nie ma żadnych argumentów
Bardziej szczegółowoJAVA. 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ółowoMechanizm 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> 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ół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ółowoWykład 9: Polimorfizm i klasy wirtualne
Programowanie obiektowe Wykład 9: i klasy wirtualne 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD Programowanie obiektowe i metody wirtualne 2 W programowaniu obiektowym polimorfizm
Bardziej szczegółowoMetody Metody, parametry, zwracanie wartości
Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Metody Metody, parametry, zwracanie wartości Metody - co to jest i po co? Metoda to wydzielona część klasy, mająca
Bardziej szczegółowoJęzyki i metodyka programowania. Język C# pętle, sterowanie, wyjątki
Język C# pętle, sterowanie, wyjątki Język C# pętle Pętle: while ( ) do { while ( ); for ( ; ; ) foreach ( in
Bardziej szczegółowodr 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ółowoProgramowanie 2. Język C++. Wykład 3.
3.1 Programowanie zorientowane obiektowo... 1 3.2 Unie... 2 3.3 Struktury... 3 3.4 Klasy... 4 3.5 Elementy klasy... 5 3.6 Dostęp do elementów klasy... 7 3.7 Wskaźnik this... 10 3.1 Programowanie zorientowane
Bardziej szczegółowoDefinicje klas i obiektów. Tomasz Borzyszkowski
Definicje klas i obiektów Tomasz Borzyszkowski Podstawy Do tej pory używaliśmy klas jedynie po to, by zdefiniować metodę main(). Klasy mają znacznie szersze zastosowanie w Java. W OOP (także w Java) klasy
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ółowoPodstawy otwartych języków programowania Przechowywanie danych
Podstawy otwartych języków programowania Przechowywanie danych Wiktor Wandachowicz Sposoby przechowywania danych Typy podstawowe Pojedyncze obiekty Tablice obiektów i tablice typów podstawowych jednowymiarowe
Bardziej szczegółowo