Obsah přednášky. dědičnost modifikátory (specifikátory) přístupu
|
|
- Ludmila Křížová
- před 6 lety
- Počet zobrazení:
Transkript
1 OOPR_08 1
2 Obsah přednášky dědičnost modifikátory (specifikátory) přístupu private, public, protected konstruktor v dědičnosti deklarace nových objektů rozšiřování & přepisování (zastiňování) metod pravidla pro přetypování proměnných třída Object a její metody přetěžované metody 2
3 Dědičnost dědičnost je další základní charakteristika objektově orientovaného programování dědění tříd patří k nejvíce využívaným, ale také k nejvíce zneužívaným rysům objektově orientovaného programování jak využívat a jak nepoužívat dědičnost 3
4 Specializace - Zobecnění dva navzájem protichůdné pojmy využívané při tvorbě hierarchických struktur specializace: osoby na OU zaměstnanci administrativa učitelé studenti denní interní externí bakalářský program magisterský program 4
5 Specializace - Zobecnění zobecnění obrácený postup, zkušenosti získané ze zvláštních objektů zobecňujeme na rozsáhlejší obecnou skupinu např. čtverec, trojúhelník, kruh rozdílné tvary, zobecnění ní speciální případy obecného geometrického tvaru osoby mající něco společného s OU 5
6 Dědičnost tříd hierarchie s UML Student Bakalář Magistr Doktorand Denní_bakalář Distanční_bakalář Denní_magistr Distanční_magistr 6
7 Dědičnost versus kompozice při tvorbě software rozlišujeme mezi relací is-a a relací has-a relace has-a reprezentuje skládání objektů: kompozice, agregace relace is-a reprezentuje dědičnost např. auto je dopravní prostředek, na rozdíl od auto má volant, auto má motor atd. výhodou dědičnosti je, že nové třídy mohou dědit z vytvořených knihoven tříd, což značně urychluje tvorbu programových systémů (znovupoužitelnost na úrovni kódu) 7
8 Prostředky pro realizaci dědičnosti v OOP Jedním z nástrojů umožňující realizaci popsaných vlastností je dědičnost tříd. Má-li nějaká množina instancí specifické vlastnosti, které je možno využít, a nebo respektovat, můžeme pro ni definovat zvláštní podtřídu, která zdědí všechny původní vlastnosti třídy a přidá ty, které popisují její speciální vlastnosti. Při zobecňování máme-li několik tříd, jejíchž instance vykazují nápadně podobné vlastnosti, můžeme jim definovat společnou nadtřídu, která bude na jednom místě definovat jejich společné vlastnosti. 8
9 Dědičnost v Javě Dědičnost v Javě má dvě formy: dědičnost tříd (class inheritance) dědičnost rozhraní (interface inheritance) dědičnost tříd podporuje základní formu znovupoužitelnosti kódu, což znamená, že podtřída zdědí metody nadtřídy a její datové atributy dědičnost také umožňuje využívat konstrukce polymorfismu (vícetvarosti) v polymorfismu mají různé metody uvnitř hierarchie tříd stejné názvy, ale odlišnou funkcionalitu. 9
10 Osoba Student jednoduchý příklad Osoba datové atributy: jméno pohlaví datumnarozeni metody konstruktory getvek dynamicky se měnící datový atribut tostring tisk Implicitně je každá deklarovaná třída podtřídou třídy Object 10
11 Student datové atributy obor studia metody konstruktory tostring Osoba Student jednoduchý příklad 11
12 import java.util.calendar; public class Osoba { private String jmeno; private String pohlavi; private int roknarozeni; Poznámky public Osoba() { jmeno="neuvedeno"; pohlavi="neuvedeno"; roknarozeni = 0; public Osoba(String jmeno, String pohlavi, int r) { this.jmeno = jmeno; this.pohlavi= pohlavi; roknarozeni = r; public int getvek(){ Calendar c = Calendar.getInstance(); int aktrok = c.get(1); return aktrok - roknarozeni; public String tostring() { return String.format(" %s: %s %s: %s %s: %d\n", "jmeno",jmeno,"pohlavi",pohlavi,"vek",this.getvek()); public void tisk() { System.out.println(this.getClass().getName()+this.toString()); public String getjmeno() { return jmeno; public String getpohlavi() { return pohlavi; 12
13 public class Student extends Osoba { private String obor; Poznámky public Student() { super(); obor="neuveden"; public Student(String jmeno, String pohlavi, int roknar, String obor) { super(jmeno, pohlavi, roknar); this.obor= obor; public String tostring() { return String.format("%s %s: %s\n",super.tostring(), "obor",obor); public String getobor() { return obor; 13
14 public class OsobaTest { Poznámky public static void main(string[] args) { Osoba o1 = new Osoba("Jana", "zena", 1980); Osoba o2 = new Osoba("David", "muz", 1984); Osoba o3; Student s3; Student s1 = new Student("Iveta","zena", 1979, "informatika"); Student s2 = new Student("Josef","muz",1986,"matematika"); o1.tisk(); o2.tisk(); s1.tisk(); s2.tisk(); o3 = s1; //System.out.println("Jmeno: "+o3.jmeno+" pohlavi: "+ // o3.pohlavi+ " vek: "+o3.getvek()); // k pristupu k datovym atributum je nutno pouzit // pristupove metody System.out.println("Jmeno: "+o3.getjmeno()+" pohlavi: "+ o3.getpohlavi()+ " vek: "+o3.getvek()); //System.out.println("Obor: "+o3.getobor()); // nelze pouzit System.out.println("o3.tisk()"); o3.tisk(); //funguje s3 = (Student) o3; //nutno provest pretypovani - upcasting System.out.println("s3.tisk()"); s3.tisk(); 14
15 simple.osoba jmeno: Jana pohlavi: zena vek: 26 Poznámky simple.osoba jmeno: David pohlavi: muz vek: 22 simple.student jmeno: Iveta pohlavi: zena vek: 27 obor: informatika simple.student jmeno: Josef pohlavi: muz vek: 20 obor: matematika Jmeno: Iveta pohlavi: zena vek: 27 o3.tisk() simple.student jmeno: Iveta pohlavi: zena vek: 27 obor: informatika s3.tisk() simple.student jmeno: Iveta pohlavi: zena vek: 27 obor: informatika 15
16 Modifikátory přístupu private datové atributy, z vně třídy nepřístupné konstruktory, z vně třídy nepřístupné metody modifikátor private umožňuje přístup k datovým atributům a metodám pouze uvnitř dané třídy. Ty nejsou děděny do podtříd. 16
17 Modifikátory přístupu public veřejně přístupné metody, konstruktory, datové atributy v návrhovém vzoru přepravka modifikátor public umožňuje přístup k datovým atributům a metodám z objektů dané třídy a objektů jejich podtříd. 17
18 Přístup protected modifikátor protected mezistupeň ochrany mezi public a private modifikátor protected je přístupný členům nadtřídy (datové atributy a metody) členům podtřídy členům jiných tříd ve stejném balíčku přístup podtřídy ke členům nadtřídy klíčové slovo super a tečka (.) 18
19 Modifikátory přístupu modifikátor public a protected se nemění v podtřídách, v podtřídách je umožněn přístup pomocí jmen když podtřída redefinuje metodu nadtřídy, metoda nadtřídy může být zpřístupněna na z podtřídy pomocí klíčového slova super ( super.tostring(); ) metody podtřídy nemají přímý přístup k private členům nadtřídy, musí k tomu použít jiné než private metody nadtřídy, zděděné podtřídou 19
20 Modifikátory přístupu v podtřídě nemůžeme k datovým atributům deklarovaným jako private přistupovat přímo využít modifikátor protected (problém umožní také přímý přístup všem třídám v balíčku) využít veřejné ejné (public) přístupové metody 20
21 Modifikátor protected Použití modifikátoruprotected pro datové atributy (instanční proměnné) Výhody podtřídy mohou modifikovat přímo datové atributy (tečková notace) Výkonnost aplikace se trochu zvýší Nevýhody Sníží se režie přístupových a modifikačních funkcí Žádná kontrola vstupních dat podtřída může přiřadit nepovolenou hodnotu atributy nadtřídy Implementační závislost metody podtřídy jsou pravděpodobněnji více závislé na implementaci nadtřídy změny implementace nadtřídy mohou vyústit ve změnu podtřídy Vede to ke křehkému software 21
22 Rezervace jízdenek Datum den: int mesic: int rok: int Rezervace tostring() tisk() Osoba jmeno: String pohlavi: String RezervaceLetenek let: String sedadlo: String RezervaceJizdenek vlak: String vagon: int sedadlo: int 22
23 import java.util.calendar; public class Datum { private int den; // 1-31 private int mesic; // 1-12 private int rok; private Calendar kalendar = Calendar.getInstance(); Poznámky // kalendar.get(1) = rok, kalendar.get(2) +1 = mesic, kalendar.get(5) = den //konstruktory public Datum( int den,int mesic, int rok) { this.mesic = mesickontrola( mesic ); this.rok = kontrolarok(rok); this.den = denkontrola( den); public Datum() { mesic = kalendar.get(2) + 1; den = kalendar.get(5); rok = kalendar.get(1); public Datum(int den) { mesic = kalendar.get(2) + 1; this.den = denkontrola(den); rok = kalendar.get(1);
24 public Datum(int den, int mesic) { this.mesic = mesickontrola(mesic); this.den = denkontrola(den); rok = kalendar.get(1); Poznámky public Datum(int den, String mesic, int rok) { this.mesic = mesickontrola(mesic); this.den = denkontrola(den); this.rok = kontrolarok(rok); public Datum(int den, Mesic mesic, int rok) { this.mesic = mesic.ordinal() + 1; //System.out.println("mesic: " + this.mesic); this.den = denkontrola(den); this.rok = rok; // kopirovaci konstruktor public Datum(Datum d) { mesic = d.getmesic(); den = d.getden(); rok = d.getrok();
25 // pristupove a modifikacni metody... private int mesickontrola( int mesic) { if ( mesic > 0 && mesic <= 12 ) return mesic; else { System.out.printf( "Neplatny mesic (%d) nastaveni na 1.", mesic ); return 1; Poznámky private int mesickontrola(string mesic) { String[] mesice = {"leden", "unor", "brezen", "duben", "kveten", "cerven", {"leden", "unor", "brezen", "duben", "kveten", "cerven", "cervenec", "srpen", "zari", "rijen", "listopad", "prosinec"; for(int i = 0; i < mesice.length; i++) if(mesic == mesice[i]) return i+1; System.out.printf("neplatny mesic (%s) + nastaveni na leden ", mesic); return 1;
26 private int denkontrola( int den ) { int dnuvmesici[] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ; Poznámky // kontrola rozsahu dne v mesici if ( den > 0 && den <= dnuvmesici[ getmesic() ] ) return den; // kontrola prestupny rok if ( getmesic() == 2 && getden() == 29 && ( getrok() % 400 == 0 ( getrok() % 4 == 0 && getrok() % 100!= 0 ) ) ) return den; System.out.printf( "Neplatny den (%d) nastaveni na 1.", den ); return 1;
27 public int kontrolarok(int r) { if(r>=1900 && r <= 2100) return r; else return kalendar.get(1); public String tostring() { return String.format( "%d/%d/%d", getden(), getmesic(), getrok()); public void tisk(){ System.out.println(toString()); Poznámky public enum Mesic { LEDEN, UNOR, BREZEN, DUBEN, KVETEN, CERVEN, CERVENEC, LEDEN, UNOR, BREZEN, DUBEN, KVETEN, CERVEN, CERVENEC, SRPEN, ZARI, RIJEN, LISTOPAD, PROSINEC
28 public class Rezervace { Datum datum; Osoba zakaznik; Poznámky public Rezervace(Datum datum){ this.datum = datum; public void setzakaznik(osoba o){ zakaznik = osoba; public Osoba getzakaznik(){ return zakaznik; public String tostring(){ return String.format("Zakaznik: %sdatum: %s", zakaznik.tostring(), datum.tostring()); public void tisk(){ System.out.print(this.toString());
29 public class RezervaceLetenek extends Rezervace { private String let; private String sedadlo; Poznámky public RezervaceLetenek(Datum d, String l, String s){ super(d); let = l; sedadlo = s; public String getlet(){ return let; public String getsedadlo() { return sedadlo; public String tostring() { return String.format("%s \nlet: %s sedadlo: %s\n", super.tostring(),getlet(),getsedadlo());
30 public class RezervaceJizdenek extends Rezervace { private String vlak; private int vagon; private int sedadlo; Poznámky public RezervaceJizdenek(Datum d, String v, int vg, int s){ super(d); vlak = v; vagon = vg; sedadlo = s; public String getvlak(){ return vlak; public int getvagon(){ return vagon; public int getsedadlo(){ return sedadlo; public String tostring(){ return String.format("%s\nVlak: %s vagon: %4d, + sedadlo: %3d\n", super.tostring(),vlak, vagon, sedadlo);
31 public class RezervaceTest { public static void main(string[] args) { 1 RezervaceJizdenek jizdenka = new RezervaceJizdenek(new Datum(25), 2 "Pendolino",506,28); 3 4 Osoba osoba = new Osoba("Adam","muz"); 5 jizdenka.setzakaznik(osoba); 6 7 RezervaceLetenek letenka = new RezervaceLetenek( 8 new Datum(16, Mesic.UNOR, 2014), "Ok 225","14A"); 9 osoba = new Osoba("Alena","zena"); 10 letenka.setzakaznik(osoba); 11 // tisk rezervace jizdenky 11 // tisk rezervace jizdenky 12 jizdenka.tisk(); 13 // tisk rezervace letenky 14 letenka.tisk(); System.out.println("Let: "+letenka.getlet()); //chybny pristup - informace z nadtridy pouze 19 // prostrednictvim pristupovych metod 20 System.out.println("Jmeno zakaznika: " + letenka.zakaznik.jmeno); 21 // spravne 22 System.out.println("Jmeno klienta: " + 23 letenka.getzakaznik().getjmeno()+"\n"); Poznámky
32 24 // kvalifikace promenne rezervace 25 Rezervace rezervace; 26 rezervace = jizdenka; // pretypovani na predka 27 rezervace.tisk(); 28 rezervace = letenka; // pretypovani na predka 29 rezervace.tisk(); 30 System.out.println("Jmeno: " + rezervace.getzakaznik().getjmeno()+ 31 " pohlavi: "+rezervace.getzakaznik().getpohlavi()); 32 //metoha getlet() není definovana pro tridu Reservace; 33 //System.out.println("Let: "+rezervace.getlet()); RezervaceLetenek letenkax; 36 letenkax = (RezervaceLetenek) rezervace; 37 System.out.println("Let: "+letenkax.getlet()); 37 System.out.println("Let: "+letenkax.getlet()); Poznámky
33 Zakaznik: jmeno: Adam pohlavi: muz Datum: 25/7/2013 Vlak: Pendolino vagon: 506, sedadlo: 28 Poznámky Zakaznik: jmeno: Alena pohlavi: zena Datum: 16/2/2014 Let: Ok 225 sedadlo: 14A Let: Ok 225 Jmeno klienta: Alena Zakaznik: jmeno: Adam pohlavi: muz Datum: 25/7/2013 Vlak: Pendolino vagon: 506, sedadlo: 28 Zakaznik: jmeno: Alena pohlavi: zena Datum: 16/2/2014 Let: Ok 225 sedadlo: 14A Jmeno: Alena pohlavi: zena Let: Ok 225
34 Třídy a podtřídy Hierarchie dědičnosti Vztahy dědičnosti: stromová hierarchická struktura Každá třída se stává nadtřídou nebo dodává data/ chování (metody) jiným třídám podtřídou dědí data/ chování (metody) z jiných tříd (bezprostředně z jedné) 34
35 Třídy podtřídy Jedním z problémů dědičnosti je, že podtřída může zdědit metody, které nepotřebuje, nebo nemusí mít. Podtřída často potřebuje upravit zděděnou metodu. V těchto případech podtřída redefinuje (override, zastiňuje) metodu nadtřídy se svoji vhodnou implementací. 35
36 Třída Object a další třídy každá třída v Javě, kromě třídy java.lang.object má nadtřídu. Třída Object nemá žádnou nadtřídu a tvoří kořen hierarchie tříd. Třída Object poskytuje svým podtřídám pouze metody ve skutečnosti každá javovská třída dědí metody třídy Object přímo (explicitně uvede klíčové slovo extends) nebo nepřímo (neuvede klíčové slovo extends a dědí také) 36
37 Třída Object a další třídy pokud nová třída neuvede, že je podtřídou jiné třídy, je implicitně podtřídou třídy Object 37
38 Třída Object Metoda clone Popis metoda protected, bez argumentů, vytváří kopii objektu na který je zavolána; v dané třídě se předpokládá redefinování této metody jako public, která by měla implementovat rozhraní Clonable (balíček java.lang). Implicitní implementace této metody provádí tzv. shallow copy equals finalize getclass metoda porovnává dva objekty a vrací true v případě rovnosti a false při nerovnosti; object1.equals(object2); metoda předpokládá redefinici ve třídách použití metoda protected, je volána garbage collectorem ke konečnému uklízení, nemá parametry, vrací void, zřídka kdy používaná metoda vrací informace o dané třídě, jméno třídy dostaneme pomocí metody getname() 38
39 Třída Object Metoda Popis hashcode hashovací tabulka je datová struktura, která přiřazuje objekt klíč k objektu hodnota, hashcode je hodnota vrácená metodou hashcode, která se používá ke stanovení místa, kde bude uložena odpovídající hodnota notify notifyall wait tostring metody využívané pro multithreading (aktivní objekty) tato metoda vrací řetězcovou reprezentaci objektu 39
40 // CommissionEmployee class represents a commission employee. public class CommissionEmployee extends Object { private String firstname; private String lastname; private String socialsecuritynumber; private double grosssales; // gross weekly sales private double commissionrate; // commission percentage // five-argument constructor public CommissionEmployee( String first, String last, String ssn, double sales, double rate ) { // implicit call to Object constructor occurs here firstname = first; lastname = last; socialsecuritynumber = ssn; setgrosssales( sales ); // validate and store gross sales setcommissionrate( rate ); // validate and store commission rate // end five-argument CommissionEmployee constructor Poznámky Konstruktor se nedědí, ale třída CommissionEmployee volá konstruktor třídy Object implicitně Prvním úkolem konstruktoru podtřídy je volat přímý konstruktor nadtřídy, explicitně nebo implicitně, aby se zdědily datové atributy nadtříd a byly správně inicializované // set first name public void setfirstname( String first ) { firstname = first; // end method setfirstname 40
41 Konstruktor v podtřídách vytvoření objektu podtřídy řetězec volání konstruktorů konstruktor podtřídy volá konstruktor nadtřídy implicitně nebo explicitně pravidla hierarchie dědičnosti posledním volaným konstruktorem v řetězci je konstruktor třídy Object tělo konstruktoru původního objektu (kde vše začalo) podtřídy ukončuje provádění jako poslední 41
42 Příklad hierarchie tříd 42
43 public class Zaznam { Poznámky private int klic; public Zaznam() { klic = 0; public Zaznam(int klic) { this.klic = klic; public String tostring() { return String.format("%5d\n",klic); //vyuziva se ve vsech nadtridach public void tisk() { System.out.println(this.getClass().getName()+this.toString()); public int getklic() { return klic; 43
44 public class Kniha extends Zaznam { Poznámky private String autor; private String nazev; public Kniha() { super(); autor = "neuveden"; nazev= "neuveden"; public Kniha(int klic, String autor, String nazev) { super(klic); this.autor = autor; this.nazev= nazev; public String tostring() { return String.format("%s %s: %s %s: %s\n",super.tostring(), "autor",autor,"nazev",nazev); public String getautor() { return autor; public String getnazev() { return nazev; 44
45 public class Osoba extends Zaznam { private String jmeno; private String pohlavi; Poznámky public Osoba() { super(); jmeno="neuvedeno"; pohlavi="neuvedeno"; public Osoba(int klic, String jmeno, String pohlavi) { super(klic); this.jmeno = jmeno; this.pohlavi= pohlavi; public String tostring() { return String.format("%s %s: %s %s: %s\n",super.tostring(), "jmeno",jmeno,"pohlavi",pohlavi); public String getjmeno() { return jmeno; public String getpohlavi() { return pohlavi; 45
46 public class Student extends Osoba { private String obor; Poznámky public Student() { super(); obor="neuveden"; public Student(int klic, String jmeno, String pohlavi, String obor) { super(klic, jmeno, pohlavi); this.obor= obor; public String tostring() { return String.format("%s %s: %s\n",super.tostring(), "obor",obor); public String getobor() { return obor; 46
47 public class Pracovnik extends Osoba { private String pozice; private int plat; Poznámky public Pracovnik() { super(); pozice= "neuvedena"; plat = 0; public Pracovnik(int klic, String jmeno, String pohlavi, String pozice, int plat) { super(klic, jmeno, pohlavi); this.pozice= pozice; this.plat= plat; public String tostring() { return String.format("%s %s: %s %s: %6d\n", super.tostring(),"pozice",pozice,"plat",plat); public String getpozice() { return pozice; public int getplat() { return plat; 47
48 public class ZaznamTest { public static void main(string args[]) { Zaznam z, z1; Osoba o; Pracujici p1; Kniha k = new Kniha(15,"Nemcova","Babicka"); Pracujici p = new Pracujici(44,"Jana","zena","ucetni",20000); k.tisk(); p.tisk(); z = p; System.out.println("Zaznam tisk & pracujici\n"); z.tisk(); //System.out.println("plat: "+z.getplat()); System.out.println("Zaznam tisk & pracujici P1\n"); p1= (Pracujici)z; p1.tisk(); System.out.println("Zaznam tisk & pracujici OSOBA\n"); o = (Osoba)z; //pretypuje se jako Pracujici o.tisk(); Poznámky 48
49 Poznámky zaznam.kniha 15 autor: Nemcova nazev: Babicka zaznam.pracujici 44 jmeno: Jana pohlavi: zena pozice: ucetni plat: Zaznam tisk & pracujici zaznam.pracujici 44 jmeno: Jana pohlavi: zena pozice: ucetni plat: Zaznam tisk & pracujici P1 zaznam.pracujici 44 jmeno: Jana pohlavi: zena pozice: ucetni plat: Osoba klic: 44 jmeno: Jana pohlavi: zena Zaznam tisk & pracujici OSOBA zaznam.pracujici 44 jmeno: Jana pohlavi: zena pozice: ucetni plat:
50 Přetěžování metod Přetěžování metod Několik metod má stejné jméno Každá metoda má jinou množinu parametrů Počet parametrů Typ parametrů 50
51 // Overloaded method declarations. Poznámky public class MethodOverload { // test overloaded square methods public void testoverloadedmethods() { System.out.printf( "Square of integer 7 is %d\n", square( 7 ) ); System.out.printf( "Square of double 7.5 is %f\n", square( 7.5 ) ); // end method testoverloadedmethods // square method with int argument public int square( int intvalue ) { System.out.printf( "\ncalled square with int argument: %d\n", intvalue ); return intvalue * intvalue; // end method square with int argument // square method with double argument public double square( double doublevalue ) { System.out.printf( "\ncalled square with double argument: %f\n", doublevalue ); return doublevalue * doublevalue; // end method square with double argument // end class MethodOverload 51
52 // Application to test class MethodOverload. Poznámky public class MethodOverloadTest { public static void main( String args[] ) { MethodOverload methodoverload = new MethodOverload(); methodoverload.testoverloadedmethods(); // end main // end class MethodOverloadTest Called square with int argument: : 7 Square of integer 7 is 49 Called square with double argument: Square of double 7.5 is
Obsah přednášky. dědičnost modifikátory (specifikátory) přístupu
OOPR_08 1 Obsah přednášky dědičnost modifikátory (specifikátory) přístupu private, public, protected konstruktor v dědičnosti deklarace nových objektů rozšiřování & přepisování (zastiňování) metod pravidla
VíceOOPR_05. Případové studie
OOPR_05 Případové studie 1 Přehled probírané látky příklad skládání objektů - čára příklad skládání objektů kompozice a agregace přetížené konstruktory pole jako datový atribut 2 Grafický objekt - čára
Více11.5.2012. Obsah přednášky 9. Skrývání informací. Skrývání informací. Zapouzdření. Skrývání informací. Základy programování (IZAPR, IZKPR) Přednáška 9
Obsah přednášky 9 Základy programování (IZAPR, IZKPR) Přednáška 9 Základy dědičnosti, přístupová práva Ing. Michael Bažant, Ph.D. Katedra softwarových technologií Kancelář č. 03 022, Náměstí Čs. legií
VíceGenerické programování
Generické programování Od C# verze 2.0 = vytváření kódu s obecným datovým typem Příklad generická metoda, zamění dva parametry: static void Swap(ref T p1, ref T p2) T temp; temp = p1; p1 = p2; p2 =
VíceDefinice třídy. úplná definice. public veřejná třída abstract nesmí být vytvářeny instance final nelze vytvářet potomky
JAVA Třídy Definice třídy úplná definice [public] [abstract] [final] class Jmeno [extends Predek] [impelements SeznamInterfacu] {... // telo tridy public veřejná třída abstract nesmí být vytvářeny instance
VíceÚvod do programovacích jazyků (Java)
Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2007/2008 c 2006 2008 Michal Krátký Úvod do programovacích
VícePřehled probírané látky
OOPR_04 1 Přehled probírané látky asociace (relace) mezi třídami popis množiny spojení mezi objekty skládání objektů - upřesněný typ asociace, vazba mezi objekty kompozice objektů (velmi pevná vazba mezi
Vícetypová konverze typová inference
Seminář Java Programování v Javě II Radek Kočí Fakulta informačních technologií VUT Únor 2008 Radek Kočí Seminář Java Programování v Javě (2) 1/ 36 Téma přednášky Rozhraní: použití, dědičnost Hierarchie
Více14.4.2010. Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.
Základy programování (IZAPR) Přednáška 7 Ing. Michael Bažant, Ph.D. Katedra softwarových technologií Kancelář č. 229, Náměstí Čs. legií Michael.Bazant@upce.cz Obsah přednášky 7 Parametry metod, předávání
Více11 Diagram tříd, asociace, dědičnost, abstraktní třídy
11 Diagram tříd, asociace, dědičnost, abstraktní třídy Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost diagramům tříd, asociaci,
VíceOOPR_05. Případové studie
OOPR_05 Případové studie 1 Přehled probírané látky příklad skládání objektů - čára příklad skládání objektů kompozice a agregace přetížené konstruktory pole jako datový atribut 2 Grafický objekt - čára
VícePrincipy objektově orientovaného programování
Principy objektově orientovaného programování Třídy a objekty doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz C E T
VíceTeoretické minimum z PJV
Teoretické minimum z PJV Pozn.: následující text popisuje vlastnosti jazyka Java zjednodušeně pouze pro potřeby výuky. Třída Zavádí se v programu deklarací třídy což je část programu od klíčových slov
VíceDědičnost (inheritance)
Dědičnost (inheritance) Úvod Umožňuje objektům převzít (zdědit) členy jiných objektů a pouze je rozšířit o Auto: lze odvodit Vztah je osobní auto, cisterna jsou auta Základní pojmy Bázová třída (rodič)
VíceTřídy. Instance. Pokud tento program spustíme, vypíše následující. car1 má barvu Red. car2 má barvu Red. car1 má barvu Blue.
23. Třídy, generické třídy, instance, skládání, statické metody a proměnné. Zapouzdření, konstruktory, konzistence objektu, zpřístupnění vnitřní implementace, modifikátory public a private. Polymorfismus,
Více1. Dědičnost a polymorfismus
1. Dědičnost a polymorfismus Cíl látky Cílem této kapitoly je představit klíčové pojmy dědičnosti a polymorfismu. Předtím však je nutné se seznámit se základními pojmy zobecnění neboli generalizace. Komentář
VíceAbstraktní třída a rozhraní
Abstraktní třída a rozhraní Někdy se může stát, zejména při psaní v hierarchické struktuře hodně nadřazených tříd, že tušíme, že bude ve zděděných třídách vhodné použít nějakou metodu. Tuto metodu ještě
Více11. Dědičnost. Dědičnost strana 103
Dědičnost strana 103 11. Dědičnost V této kapitole si vysvětlíme jeden ze základních pojmů objektově orientovaného programování dědičnost (inheritance). S ní souvisejí i následující témata: předek a potomek
VíceTřídy a dědičnost. A0B36PR1-Programování 1 Fakulta elektrotechnická České vysoké učení technické
Třídy a dědičnost A0B36PR1-Programování 1 Fakulta elektrotechnická České vysoké učení technické Dnešní témata Dědičnost Kompozice Typ String Třídy a dědičnost Dopravní prostředek Vzdušný Pozemní Vodní
VíceDefinice třídy. úplná definice. public veřejná třída abstract nesmí být vytvářeny instance final nelze vytvářet potomky
JAVA Třídy Definice třídy úplná definice [public] [abstract] [final] class Jmeno [extends Predek] [impelements SeznamInterfacu] {... // telo tridy public veřejná třída abstract nesmí být vytvářeny instance
VíceDědění, polymorfismus
Programování v jazyce C/C++ Ladislav Vagner úprava Pavel Strnad Dědění. Polymorfismus. Dnešní přednáška Statická a dynamická vazba. Vnitřní reprezentace. VMT tabulka virtuálních metod. Časté chyby. Minulá
Více4. ZÁKLADNÍ POJMY Z OBJEKTOVĚ ORIENTOVANÉHO PROGRAMOVÁNÍ
4. ZÁKLADNÍ POJMY Z OBJEKTOVĚ ORIENTOVANÉHO PROGRAMOVÁNÍ OBJEKT Program v Javě je staticky strukturován na třídy, jejichž instance (objekty) za běhu dynamicky programu vznikají a zanikají. Objekt je nejprve
VíceVýčtový typ strana 67
Výčtový typ strana 67 8. Výčtový typ V této kapitole si ukážeme, jak implementovat v Javě statické seznamy konstant (hodnot). Příkladem mohou být dny v týdnu, měsíce v roce, planety obíhající kolem slunce
VícePočítačové laboratoře bez tajemství aneb naučme se učit algoritmizaci a programování s využitím robotů CZ.1.07/1.3.12/04.0006
Počítačové laboratoře bez tajemství aneb naučme se učit algoritmizaci a programování s využitím robotů CZ.1.07/1.3.12/04.0006 Lekce 1 Jazyk Java Tento projekt je spolufinancován Evropským sociálním fondem
Více20. Projekt Domácí mediotéka
Projekt Domácí mediotéka strana 211 20. Projekt Domácí mediotéka 20.1. Základní popis, zadání úkolu V projektu Domácí mediotéka (Dome) se jednoduchým způsobem evidují CD a videa. Projekt je velmi jednoduchý
VíceKTE / ZPE Informační technologie
4 KTE / ZPE Informační technologie Ing. Petr Kropík, Ph.D. email: pkropik@kte.zcu.cz tel.: +420 377 63 4639, +420 377 63 4606 (odd. informatiky) Katedra teoretické elektrotechniky FEL ZČU Plzeň Největší
VíceSeminář Java IV p.1/38
Seminář Java IV Seminář Java IV p.1/38 Rekapitulace Deklarace tříd Proměnné, metody, konstruktory, modifikátory přístupu Datové typy primitivní, objektové, pole Dědičnost Řídící konstrukce Podmínky, cykly
Více7. přednáška - třídy, objekty třídy objekty atributy tříd metody tříd
7. přednáška - třídy, objekty třídy objekty atributy tříd metody tříd Algoritmizace (Y36ALG), Šumperk - 7. přednáška 1 Třída jako zdroj funkcionality Třída v jazyku Java je programová jednotka tvořená
VíceIRAE 07/08 Přednáška č. 2. atr1 atr2. atr1 atr2 -33
Objekt jako proměnná Objekty a metody Objekt = proměnná referenčního typu vznik pomocí new, chování viz pole jako referenční proměnná minulý semestr Stack Heap objekt ref this 10 20 atr1 atr2 jinyobjekt
VíceMichal Krátký. Úvod do programovacích jazyků (Java), 2006/2007
Úvod do programovacích jazyků (Java) Michal Krátký 1 Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků
VíceProgramování v C++ 1, 6. cvičení
Programování v C++ 1, 6. cvičení dědičnost, polymorfismus 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled 1 2 3 Shrnutí minule procvičené
VíceTřídy, polymorfismus. A0B36PR2-Programování 2 Fakulta elektrotechnická České vysoké učení technické
Třídy, polymorfismus A0B36PR2-Programování 2 Fakulta elektrotechnická České vysoké učení technické Polymorfizmus ~ vícetvarost Polymorfizmus základní vlastnost objektového přístupu základní princip polymorfismu:
VíceDeklarace a vytváření
OOPR_10 1 Obsah přednášky Deklarace a tvorba polí, jejich použití Rozšířený příkaz cyklu for Třída Registr a datovým atributem typu pole Třídy Zásobník a Fronta Třída Registr pro uložení objektových a
VíceMichal Krátký. Úvod do programovacích jazyků (Java), 2006/2007
Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků
Více3. Třídy. Základní pojmy objektového programování. Třídy
3. Třídy Základní pojmy objektového programování Jak už víme, je Java objektovým programovacím jazykem. V úvodu této kapitoly si objasníme základní pojmy objektové teorie. Objekt představuje souhrn dat
VíceSeminář Java II p.1/43
Seminář Java II Seminář Java II p.1/43 Rekapitulace Java je case sensitive Zdrojový kód (soubor.java) obsahuje jednu veřejnou třídu Třídy jsou organizovány do balíků Hierarchie balíků odpovídá hierarchii
VícePŘETĚŽOVÁNÍ OPERÁTORŮ
PŘETĚŽOVÁNÍ OPERÁTORŮ Jazyk C# podobně jako jazyk C++ umožňuje přetěžovat operátory, tj. rozšířit definice některých standardních operátorů na uživatelem definované typy (třídy a struktury). Stejně jako
VíceÚvod Třídy Rozhraní Pole Konec. Programování v C# Hodnotové datové typy, řídící struktury. Petr Vaněček 1 / 39
Programování v C# Hodnotové datové typy, řídící struktury Petr Vaněček 1 / 39 Obsah přednášky Referenční datové typy datové položky metody přístupové metody accessory, indexery Rozhraní Pole 2 / 39 Třídy
VíceMichal Krátký. Úvod do programovacích jazyků (Java), 2006/2007
Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků
VíceTŘÍDY POKRAČOVÁNÍ. Události pokračování. Příklad. public delegate void ZmenaSouradnicEventHandler (object sender, EventArgs e);
TŘÍDY POKRAČOVÁNÍ Události pokračování public delegate void ZmenaSouradnicEventHandler (object sender, EventArgs e); class Bod private int x; private int y; public event ZmenaSouradnicEventHandler ZmenaSouradnic;
VíceZáklady objektové orientace I. Únor 2010
Seminář Java Základy objektové orientace I Radek Kočí Fakulta informačních technologií VUT Únor 2010 Radek Kočí Seminář Java Základy OO (1) 1/ 20 Téma přednášky Charakteristika objektově orientovaných
VícePB161 Programování v jazyce C++ Přednáška 7
PB161 Programování v jazyce C++ Přednáška 7 Statické položky tříd Základy OOP Nikola Beneš 6. listopadu 2018 PB161 přednáška 7: static, základy OOP 6. listopadu 2018 1 / 21 Klíčové slovo static Znáte z
VícePB161 Programování v jazyce C++ Přednáška 7
PB161 Programování v jazyce C++ Přednáška 7 Statické položky tříd Základy OOP Nikola Beneš 6. listopadu 2018 PB161 přednáška 7: static, základy OOP 6. listopadu 2018 1 / 21 Klíčové slovo static Znáte z
VíceProgramování v C++ 1, 5. cvičení
Programování v C++ 1, 5. cvičení konstruktory, nevirtuální dědění 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled 1 2 3 Shrnutí minule procvičené
VíceMichal Krátký. Úvod do programovacích jazyků (Java), 2006/2007
Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků
VíceProgramování v Javě I. Únor 2009
Seminář Java Programování v Javě I Radek Kočí Fakulta informačních technologií VUT Únor 2009 Radek Kočí Seminář Java Programování v Javě (1) 1/ 44 Téma přednášky Datové typy Deklarace třídy Modifikátory
VícePředmluva k aktuálnímu vydání Úvod k prvnímu vydání z roku Typografické a syntaktické konvence... 20
Obsah 5 Obsah Předmluva k aktuálnímu vydání 15 1 Úvod k prvnímu vydání z roku 2000 16 Typografické a syntaktické konvence................ 20 2 Základní pojmy 21 2.1 Trocha historie nikoho nezabije................
VíceProgramování v Javě I. Leden 2008
Seminář Java Programování v Javě I Radek Kočí Fakulta informačních technologií VUT Leden 2008 Radek Kočí Seminář Java Programování v Javě (1) 1/ 45 Téma přednášky Datové typy Deklarace třídy Modifikátory
VíceObjektově orientované programování
Objektově orientované programování Jan Faigl Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Přednáška 7 A0B36PR1 Programování 1 Jan Faigl, 2015 A0B36PR1 Přednáška 7: Objektově
VíceOOP - Objektově Orientované Programování
OOP - Objektově Orientované Programování Programovat lze klasicky neobjektově - tedy s využitím jen primitivních typů a statického kontextu - tj. statických atributů, statických metod, statických inicializátorů
VíceMnohotvarost (polymorfizmus)
Mnohotvarost (polymorfizmus) TYPY MNOHOTVAROSTI... 2 PŘETĚŽOVÁNÍ METOD, PŘETĚŽOVÁNÍ OPERACÍ... 3 PŘETÍŽENÍ OPERÁTORŮ... 4 ČASTO PŘETĚŽOVANÉ OPERÁTORY... 4 PŘEPISOVÁNÍ... 7 VIRTUÁLNÍ METODY... 10 SEZNAM
VíceDefinice třídy. úplná definice. public veřejná třída abstract nesmí být vytvářeny instance final nelze vytvářet potomky
JAVA Třídy Definice třídy úplná definice [public] [abstract] [final] class Jmeno [extends Predek] [impelements SeznamInterfacu] {... // telo tridy public veřejná třída abstract nesmí být vytvářeny instance
VíceIRAE 07/08 Přednáška č. 1
Úvod do předmětu OOP Objekt Proč OOP? Literatura, osnova předmětu viz. cvičení Základní prvek OOP sw inženýrství = model reálných objektů (věcí) člověk, auto, okno (ve windows), slovník, = model abstraktní
VíceProjekty pro výuku programování v jazyce Java
JIHOČESKÁ UNIVERZITA V ČESKÝCH BUDĚJOVICÍCH Pedagogická fakulta Katedra informatiky Akademický rok: 2006/2007 TEZE BAKALÁŘSKÉ PRÁCE Projekty pro výuku programování v jazyce Java Jméno: František Přinosil
VíceAbstraktní datové typy: zásobník
Abstraktní datové typy: zásobník doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Abstraktní datové typy omezené rozhraní
VíceProgramování v C++ 2, 4. cvičení
Programování v C++ 2, 4. cvičení statické atributy a metody, konstruktory 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled Přístupová práva
Více24. listopadu 2013, Brno Připravil: David Procházka
24. listopadu 2013, Brno Připravil: David Procházka Dědičnost Základy objektového návrhu Časná a pozdní vazba Strana 2 / 22 Obsah přednášky 1 Časná a pozdní vazba 2 Rozhraní pro dědičnost 3 Konstruktory
VíceSeznamy a iterátory. Kolekce obecně. Rozhraní kolekce. Procházení kolekcí
Kolekce obecně Seznamy a iterátory doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Kolekce ::= homogenní sada prvků
VíceClass loader. každá třída (java.lang.class) obsahuje referenci na svůj class loader. Implementace class loaderu
Seminář Java Zavádění tříd Radek Kočí Fakulta informačních technologií VUT Duben 2008 Radek Kočí Seminář Java Zavádění tříd 1/ 16 JVM zavádí třídy dynamicky Class loader objekt schopný zavádět třídy abstraktní
Vícepublic class Karel { private int position; public boolean issmiling; public int getposition() { return position;
Objekty, třídy a hierarchie tříd Interface a abstraktní třídy Dědičnost Message passing Class diagramy a příklady systémů modelovaných pomocí OOP Volba správného přístupu Rozdíl mezi asociací, agregací
VíceMichal Krátký. Úvod do programovacích jazyků (Java), 2006/2007
Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků
VíceIB111 Programování a algoritmizace. Objektově orientované programování (OOP)
IB111 Programování a algoritmizace Objektově orientované programování (OOP) OP a OOP Objekt Kombinuje data a funkce a poskytuje určité rozhraní. OP = objektové programování Vše musí být objekty Např. Smalltalk,
VícePREPROCESOR POKRAČOVÁNÍ
PREPROCESOR POKRAČOVÁNÍ Chybová hlášení V C# podobně jako v C++ existuje direktiva #error, která způsobí vypsání chybového hlášení překladačem a zastavení překladu. jazyk C# navíc nabízí direktivu #warning,
VíceKonstruktory. Konstruktor je speciální metoda, pro vytváření a inicializaci nových objektů (instancí). Název metody je totožný s názvem třídy.
OOPR_02 1 Osnova přednášky Třída Konstruktor Volání konstruktorů z konstruktorů Kopírovací konstruktor Vstup dat pomocí třídy Scanner Vstup dat s využitím třídy JOptionPane Objekt, zpráva, metoda Třídně
VíceNMIN201 Objektově orientované programování 1 / :36:09
NMIN201 Objektově orientované programování 1 / 26 8.10.2013 15:36:09 Objekty Svět se skládá z objektů! konkrétní x abstraktní hmatatelné x nehmatatelné (letadlo) x (chyba v programu) Objekty mohou obsahovat
VíceVytváření a použití knihoven tříd
Vytváření a použití knihoven tříd doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Prostory jmen motivace spolupráce
VíceStatické proměnné a metody. Tomáš Pitner, upravil Marek Šabo
Statické proměnné a metody Tomáš Pitner, upravil Marek Šabo Úvod Se statickou metodou jsme se setkali už u úplně prvního programu - Hello, world! public class Demo { public static void main(string[] args)
VíceProgramovací jazyk Java
1 z 7 14.1.2015 22:57 Programovací jazyk Java 2. přednáška Obsah Zápisy literálů znakových hodnot a řetězců Idenfitikátory, komentáře Řídicí struktury Vytváření a rušení objektů, zapouzdření, konstruktory
VíceNávrhové vzory Design Patterns
Návrhové vzory Design Patterns doc. Ing. František Huňka, CSc. Ostravská univerzita PřF 1 Definice vzoru Každý vzor popisuje problém, který nastává opakovaně v našem prostředí, a potom popisuje podstatu
VíceObjektové programování
Objektové programování - přináší nové možnosti a styl programování - vytváří nový datový typ, který umí vše co standardní datové typy + to co ho naučíme - překladač se k tomuto typu chová stejně jako k
VíceZákladní pojmy. Matice(řádky, sloupce) Matice(4,6) sloupce
Vektor a Matice Základní pojmy Matice(řádky, sloupce) Matice(4,6) sloupce řádky (1,1) (1,2) (1,3) (1,4) (1,5) (1,6) (2,1) (2,2) (2,3) (2,4) (2,5) (2,6) (3,1) (3,2) (3,3) (3,4) (3,5) (3,6) (4,1) (4,2) (4,3)
VíceNPRG031 Programování II 1 / :25:46
NPRG031 Programování II 1 / 26 28. 2. 2018 11:25:46 Objekty Svět se skládá z objektů! konkrétní x abstraktní hmatatelné x nehmatatelné (letadlo) x (chyba v programu) Objekty mohou obsahovat jiné objekty
VíceJava - řazení objektů
Java - řazení objektů Kapitola seznamuje se základními principy řazení objektů Klíčové pojmy: Přirozené řazení, absolutní řazení, ideální porovnávatelná třída ŘAZENÍ OBJEKTŮ U objektů není příliš jasné,
VíceZapouzdření. Tomáš Pitner, upravil Marek Šabo
Zapouzdření Tomáš Pitner, upravil Marek Šabo Co je zapouzdření Naprosto zásadní vlastnost objektového přístupu, možná nejzásadnější Jde o spojení dat a práce s nimi do jednoho celku - objektu Data jsou
VícePříklad : String txt1 = new String( Ahoj vsichni! ); //vytvoří instanci třídy String a přiřadí ji vnitřní hodnotu Ahoj vsichni!
Java práce s řetězci Trochu povídání.. Řetězce jsou v Javě reprezentovány instancemi tříd StringBuffer a String. Tyto třídy jsou součástí balíčku java.lang, tudíž je možno s nimi pracovat ihned bez nutného
VíceProgramování v C++ 3, 3. cvičení
Programování v C++ 3, 3. cvičení úvod do objektově orientovaného programování 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled Dokončení spojového
VíceOMO. 4 - Creational design patterns A. Singleton Simple Factory Factory Method Abstract Factory Prototype Builder IoC
OMO 4 - Creational design patterns A Singleton Simple Factory Factory Method Abstract Factory Prototype Builder IoC Ing. David Kadleček, PhD. kadlecd@fel.cvut.cz, david.kadlecek@cz.ibm.com 1 Creational
VíceJazyk C# (seminář 3)
Jazyk C# (seminář 3) Pavel Procházka KMI October 8, 2014 Motivace Největší využití v programování okenních aplikací a GUI knihoven. Data reprezentujeme pomocí objektů (tříd), máme tedy ucelený pohled na
VíceJazyk C# (seminář 6)
Jazyk C# (seminář 6) Pavel Procházka KMI 29. října 2014 Delegát motivace Delegáty a události Jak docílit v C# funkcionální práce s metodami v C je to pomocí pointerů na funkce. Proč to v C# nejde pomocí
Více9. přednáška - třídy, objekty
třída String a její použití kolekce, typované kolekce 9. přednáška - třídy, objekty Algoritmizace (Y36ALG), Šumperk - 9. přednáška 1 Třída String Objekty knihovní třídy String jsou řetězy znaků Od ostatních
Více1. Programování proti rozhraní
1. Programování proti rozhraní Cíl látky Cílem tohoto bloku je seznámení se s jednou z nejdůležitější programátorskou technikou v objektově orientovaném programování. Tou technikou je využívaní rozhraní
VíceTřída jako zdroj funkcí
Třída jako zdroj funkcí Třída v jazyku Java je programová jednotka tvořená množinou identifikátorů, které mají třídou definovaný význam Základem uživatelského programu v jazyku Java je třída, ve které
VíceNávrh softwarových systém. Návrh softwarových systémů
Návrh softwarových systém ů - Java 8 Jiří Šebek Návrh softwarových systémů (B6B36NSS) Co je nového? Default interface methods Lambda expressions Method references and repeatable annotations Streams Functional
VíceTřída. Atributy. Operace
Class Diagrams Třída Atributy Operace Třída Třída je jakýsi prototyp objektů. Za třídou si můžeme představit množinu jejích instancí. Každý objekt dané třídy má stejnou množinu atributů (proměnných) a
VíceObjekt. základní prvek v OOP. má vlastnosti. má metody. vznikne vytvoření nové instance definován pomocí třídy
3. ročník Objekt základní prvek v OOP má vlastnosti charakterizují objekt (barva, počet osob) má metody definují to, co objekt umí (vypni motor, připoj se) vznikne vytvoření nové instance definován pomocí
Více14.4.1. Typický prvek kolekce pro české řazení
14.4. Co všechno by měl mít typický prvek kolekce 177 Poznámka: Třídy BigInteger, BigDecimal a Date budou vysvětleny v částech [15./183, [16./185 a [18.1./204. 14.4.1. Typický prvek kolekce pro české řazení
Více7.3 Diagramy tříd - základy
7.3 Diagramy tříd - základy - popisuje typy objektů a statické vztahy mezi nimi Objednávka -datumpřijetí -předplacena -číslo -cena +vyřiď() +uzavři() {if Objednávka.zákazník.charakteristika = 'nejistý'
Více8 Třídy, objekty, metody, předávání argumentů metod
8 Třídy, objekty, metody, předávání argumentů metod Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost třídám a objektům, instančním
VíceObsah. Úvod 11 Základy programování 11 Objektový přístup 11 Procvičování 11 Zvláštní odstavce 12 Zpětná vazba od čtenářů 12 Errata 13
Úvod 11 Základy programování 11 Objektový přístup 11 Procvičování 11 Zvláštní odstavce 12 Zpětná vazba od čtenářů 12 Errata 13 KAPITOLA 1 Na úvod o Javě 15 Počítačový program 15 Vysokoúrovňový programovací
VíceDatové abstrakce v programovacích jazycích
Datové abstrakce v programovacích jazycích Motivace Strukturovat rozsáhlé programy Dovolit separátní překlad Možné formy strukturování: Podprogramy původní forma abstrakce -abstrakce výpočtů Moduly kontejnery
VícePokud zadání nerozumíte nebo se vám zdá nejednoznačné, zeptejte se. Pište čitelně, nečitelná řešení nebudeme uznávat.
Pokud zadání nerozumíte nebo se vám zdá nejednoznačné, zeptejte se. Pište čitelně, nečitelná řešení nebudeme uznávat. 1. Odkrokujte následující program a s použitím notace z přednášky sledujte stav paměti
VíceReflexe. Aplikační programování v Javě (BI-APJ) - 8 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha
Reflexe Aplikační programování v Javě (BI-APJ) - 8 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha Evropský sociální fond Praha & EU: Investujeme do vaší
VíceOsnova přednášky. Programové prostředky řízení Úvod do C# II. Přístup ke členům. Členy (Members)
Osnova přednášky Programové prostředky řízení Úvod do C# II. Členy (Members) Jmenné prostory (Namespaces) Třídy (Classes) Struktury (Structs) Pavel Balda Západočeská univerzita v Plzni, FAV, KKY 2 Členy
Více7.3 Diagramy tříd - základy
7.3 Diagramy tříd - základy - popisuje typy objektů a statické vztahy mezi nimi Objednávka -datumpřijetí -předplacena -číslo -cena +vyřiď() +uzavři() {if Objednávka.zákazník.charakteristika = 'nejistý'
VíceDatové typy v Javě. Tomáš Pitner, upravil Marek Šabo
Datové typy v Javě Tomáš Pitner, upravil Marek Šabo Úvod k datovým typům v Javě Existují dvě základní kategorie datových typů: primitivní a objektové Primitivní v proměnné je uložena přímo hodnota např.
VíceDPKOM_06 Dědičnost entit a zpětná volání posluchači
DPKOM_06 Dědičnost entit a zpětná volání posluchači 1 Obsah přednášky Jedna tabulka pro hierarchii tříd Tabulka pro konkrétní třídu Tabulka pro podtřídu Neentitní základní třídy Události zpětného volání
VíceProgramování II. Abstraktní třída Vícenásobná dědičnost 2018/19
Programování II Abstraktní třída Vícenásobná dědičnost 2018/19 Osnova přednášky Polymorfismus - důsledky. Abstraktní třída. Vícenásobná dědičnost. Polymorfismus - důsledky Polymorfismus Polymorfismus je
Více10 Balíčky, grafické znázornění tříd, základy zapozdření
10 Balíčky, grafické znázornění tříd, základy zapozdření Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost příkazům balíčkům, grafickému
VíceDiagramy tříd - základy
Diagramy tříd - základy - popisuje typy objektů a statické vztahy mezi nimi Objednávka Zákazník -datumpřijetí -předplacena -číslo -cena +vyřiď() +uzavři() {if Objednávka.zákazník.charakteristika = 'nejistý'
Více