public class Account { ... }
Existují čtyři možnosti:
public
= veřejný
protected
= chráněný
private
= soukromý
Třídy mohou být:
public
lokální v balíku
Vlastnosti tříd = atributy a metody mohou být:
public
protected
lokální v balíku
private
public
public
, přístupné odevšad
public class Account { ... }
Account
je veřejná, tj. lze např.
Account
i v metodě jiné třídy;
Account
ve stejném i jiném balíku.
Account
musejí být veřejné
(ale mohou).
public
protected
protected
, tj. přístupné jen
z podtříd a ze tříd stejného balíku
public class Account { // chráněná proměnná protected float creditLimit; }
protected
public class Account { Date created; // proměnná lokální v balíku }
protected
či private
.
nadtřída-podtřída
.)
private
private
(soukromý), tj. viditelné/přístupné jen v rámci třídy,
ani v podtřídách — používá se častěji pro proměnné než metody
private
prvek zneviditelníme i případným podtřídám.
public class Account { private String owner; ... }
owner
je soukromá = nelze k ní přímo přistoupit ani v podtřídě — je tedy třeba zpřístupnit proměnnou pro "vnější" potřeby jinak, např.
setOwner(String m)
a String getOwner()
.
get
) spočítat.
private
téměř vždy private
kromě konstant, které chceme vidět odjinud,
kromě těch nabízených veřejně je taky vhodné použít private
,
protected
kvůli možnému
překrývání v podtřídách.
private
nic zásadně nepokazíme, případně lze
při pozdějších modifikacích změnit na protected
.
by měla být public
, je-li užitečná i mimo třídu či balík — "navenek",
což je typické u metod předepsaných v rozhraní.
Je metoda určená/vhodná k překrytí případných podtřídách? pak protected
,
jinak klidně private
.
by měl být private
a zcela výjimečně protected
tehdy,
je-li potřeba přímý přístup v podtřídě. Téměř nikdy bychom neměli
deklarovat atributy jako public
(vyjma případů, kdy jde o konstanty určené ke sdílení vně)!
public
) musí být umístěné do souborů
s názvem totožným s názvem třídy (a přípona .java
)
i na systémech Windows (vč. velikosti písmen).