Třída a objekt
Proč to potřebuji?
Třídy a objekty jsou základním stavebním kamenem objektově orientovaného programování v Javě. Bez pochopení tohoto konceptu nelze efektivně navrhovat ani psát jakýkoliv netriviální program.
Teorie
Třída je šablona (blueprint) pro vytváření objektů. Definuje atributy (data) a metody (chování). Objekt je konkrétní instance třídy vytvořená v paměti pomocí new.
Property (vlastnost) je logická hodnota přístupná zvenčí přes getter/setter. Zapouzdření znamená, že vnitřní stav je skrytý (private) a přístup je řízen metodami.
Instanční proměnná patří konkrétnímu objektu. Třídní (statická) proměnná (static) je sdílená všemi instancemi.
Modifikátory přístupu
| Modifikátor | Třída | Balík | Podtřída | Všude |
|---|---|---|---|---|
private | ano | ne | ne | ne |
| (default) | ano | ano | ne | ne |
protected | ano | ano | ano | ne |
public | ano | ano | ano | ano |
Příklady
public class Student {
// Instanční proměnné (private = zapouzdření)
private String jmeno;
private int vek;
// Třídní (statická) proměnná – sdílená všemi instancemi
private static int pocetStudentu = 0;
// Konstruktor
public Student(String jmeno, int vek) {
this.jmeno = jmeno;
this.vek = vek;
pocetStudentu++;
}
// Property – getter
public String getJmeno() {
return jmeno;
}
// Property – setter s validací
public void setVek(int vek) {
if (vek > 0 && vek < 150) {
this.vek = vek;
}
}
// Třídní (statická) metoda
public static int getPocetStudentu() {
return pocetStudentu;
}
// Instanční metoda
public String toString() {
return jmeno + " (" + vek + " let)";
}
}
// Použití:
Student s1 = new Student("Jan", 21); // objekt (instance)
Student s2 = new Student("Eva", 22);
System.out.println(Student.getPocetStudentu()); // 2 – třídní metoda
System.out.println(s1.getJmeno()); // "Jan" – property
Shrnutí
Klíčové body
- Třída = šablona, objekt = instance vytvořená pomocí
new static= třídní úroveň (sdílená), bez static = instanční- Zapouzdření:
privateatributy +publicgetter/setter - 4 úrovně přístupu:
private, default,protected,public