NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!

Diskuze – Lekce 10 - Aréna s mágem (dědičnost a polymorfismus)

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Avatar
Honza
Neregistrovaný
Avatar
Honza:23.7.2013 14:24

Odpoví prosím někdo? Už jsem se dostal k 17. dílu, ale tohle mě pořád trápí :)

 
Odpovědět
23.7.2013 14:24
Avatar
Theodor Johnson
Tvůrce
Avatar
Odpovídá na
Theodor Johnson:23.7.2013 14:29

pokud si zavoláš metodu tak si můžeš změnit proměnou jakéhokoliv typu nemusí být přístupná z toho objektu ze kterého voláš tu metodu, stačí když k té proměnné bude mít přístup ta metoda

 
Odpovědět
23.7.2013 14:29
Avatar
Kit
Tvůrce
Avatar
Odpovídá na
Kit:23.7.2013 14:33

Přečti si to ještě jednou:
Musíme třídu Bojovnik lehce upravit. Změníme modifikátory private u atributů na protected.

Editováno 23.7.2013 14:35
Odpovědět
23.7.2013 14:33
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Theodor Johnson
Kit:23.7.2013 14:40

Jenže tady zatím žádné takové metody nebyly definovány. Gettery a settery se používají spíš mezi objekty různých tříd než u dědičnosti.

Odpovědět
23.7.2013 14:40
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Theodor Johnson
Tvůrce
Avatar
Odpovídá na Kit
Theodor Johnson:23.7.2013 15:29

Já jsem ten článek nečetl, jenom jsem napsal jak se dá přistupovat k privátní proměnné :)

 
Odpovědět
23.7.2013 15:29
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Theodor Johnson
Kit:23.7.2013 15:40

Jedno pravidlo: K privátní proměnné se nepřistupuje, protože pak už by nebyla privátní. Můžeš však požádat setter, aby ji změnil nebo getter, aby získal její hodnotu. Pokud budou také privátní, tak máš smůlu a nedostaneš se k ní.

Dědičnost je nástroj, který mi umožní obejít obstrukci s gettery a settery, ale musím změnit u proměnné změnit privátní status na protected. Pak už v potomkovi nebudu potřebovat gettery ani settery, ale budu moct k nim přistupovat přímo. Z jiných objektů však zůstanou nedostupné.

Odpovědět
23.7.2013 15:40
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Theodor Johnson
Tvůrce
Avatar
Odpovídá na Kit
Theodor Johnson:23.7.2013 16:00

Mě to nemusíš vysvětlovat, ale nevím proč bych kvůli každý proměnný kterou třeba potřebuji jednou během běhu programu měl psát hned setter, to tam radši dám metodu se vstupní hodnotou která tu proměnnou nastaví, anebo jednoduší způsob je nastavit ji public

 
Odpovědět
23.7.2013 16:00
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na Theodor Johnson
Jan Vargovský:23.7.2013 16:08

To myslíš jako normalně natvrdo takhle?

public int foo;

Fuj, vždyť .NET povoluje zkrácené get,set. Není lepší napsat jen :

public int Foo{get;set;}
 
Odpovědět
23.7.2013 16:08
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Theodor Johnson
Kit:23.7.2013 16:11

Za běhu programu přece žádnou proměnnou objektu nepotřebuji. K čemu by mi byla? To si pleteš s imperativním programováním. Článek je o OOP.

Editováno 23.7.2013 16:13
Odpovědět
23.7.2013 16:11
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Theodor Johnson
Tvůrce
Avatar
Odpovídá na Jan Vargovský
Theodor Johnson:23.7.2013 16:14

Já to odlišuji způsobem kdy takto nastavím nedůležité proměnné, get; set; nastavuji proměným které mají třeba vliv na nějákou důležitou vlastnost, popř to řeším

public Point PixelSize { get; private set; }
 
Odpovědět
23.7.2013 16:14
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 138.