NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze – Lekce 11 - Gettery a settery v Javě

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
Kit
Tvůrce
Avatar
Odpovídá na mmartinssedlacek
Kit:12.1.2014 23:48

Na defaultní hodnoty raději rychle zapomeň. Nepatří to k dobrému programátorskému stylu.

Kromě toho to u typu String neplatí.

Odpovědět
12.1.2014 23:48
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na mmartinssedlacek
Jan Vargovský:12.1.2014 23:54

String je defaultně null. Jak říká Kit, vždycky si nadefinuj defaultní hodnoty pro všechny proměnné, ať už přímo nebo v konstruktoru. Jinak všechny ty fieldy by měly být private. Všechno co je public by se mělo řešit jen přes metodu nebo vlastnost (metoda getVlastnost nebo setVlasnost).

 
Odpovědět
12.1.2014 23:54
Avatar
Kit
Tvůrce
Avatar
Odpovídá na mmartinssedlacek
Kit:12.1.2014 23:59

Správně se má hodnota proměnné "plnolety" nastavit takto:

this.plnolety = (this.vek >= 18);

(ty závorky tam jsou jen pro okrasu :)

Editováno 13.1.2014 0:00
Odpovědět
12.1.2014 23:59
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
mmartinssedlacek:13.1.2014 12:29

Ok, dik. Este otazka, tie defaultne hodnoty si mam nastavit v nejakej triede co budem pripajat do kazdeho projektu ? Alebo pri kazdom projekte co budem robit, pre kazdu premennu napr. uz ked budem pisat private int vek; tak napisem private int vek=0;

 
Odpovědět
13.1.2014 12:29
Avatar
Kit
Tvůrce
Avatar
Odpovídá na mmartinssedlacek
Kit:13.1.2014 14:02

Můžeš udělat nejen

private int vek = 9*2;
private String stat = "ČR";

ale i složitější přiřazení, které nezávisí na parametrech konstruktoru, např.

JButton bKonec = new JButton("Konec");
Odpovědět
13.1.2014 14:02
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
mmartinssedlacek:13.1.2014 14:17

Ok, diky Kit.

 
Odpovědět
13.1.2014 14:17
Avatar
sisolpes
Člen
Avatar
sisolpes:8.2.2014 19:02

Mohu se zeptat, proč getter a setter nefunguje (lze "rozbít" program):

public int součet;
int Sečti(int prvníčíslo, int druhéčíslo, boolean vypiš){
        int součet = prvníčíslo+druhéčíslo;
        this.součet = součet;
        if(vypiš == true){
        System.out.println(součet);
}
        return součet;
}

public int getSoučet() {
        return součet;
}
public void setSoučet(int součet) {
        this.součet = součet;
}       }
Odpovědět
8.2.2014 19:02
Alt + 2
Avatar
Matěj Kripner
Tvůrce
Avatar
Odpovídá na sisolpes
Matěj Kripner:16.2.2014 19:42

Nastav atribut soucet na private.

 
Odpovědět
16.2.2014 19:42
Avatar
Matěj Kripner
Tvůrce
Avatar
Odpovídá na sisolpes
Matěj Kripner:16.2.2014 20:06

Jo, a taky tam máš docela zmatek :D (Zkus vylepšit hierarchii postavení textu), u metody Sečti ti chybí modifikátor přístupu a taky je podle mě zbytečné dávat atributům nebo metodám názvy s diakritikou. No a když už nepíšeš úplně přehledně, měl bys to komentovat. :D

 
Odpovědět
16.2.2014 20:06
Avatar
sisolpes
Člen
Avatar
Odpovídá na Matěj Kripner
sisolpes:19.2.2014 14:21

Díky, pokusím se :D

Odpovědět
19.2.2014 14:21
Alt + 2
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 91.