úroveň Přístupu modifikátory určit, zda ostatní třídy mohou používat určité oblasti nebo vyvolat konkrétní metody. Existují dvě úrovně řízení přístupu:
- na nejvyšší úrovni –
public
nebo package-private (žádný explicitní modifikátor). - Na členské úrovni
public
private
protected
, nebo balíček-vlastní (žádné explicitní modifikátor).,
třída může být deklarována modifikátorem public
, v takovém případě je tato třída viditelná pro všechny třídy všude. Pokud třída nemá modifikátor (Výchozí, také známý jako package-private), je viditelný pouze v rámci vlastního balíčku (balíčky jsou pojmenovány skupiny souvisejících tříd dozvíte se o nich v pozdější lekci.)
na úrovni člena můžete také použít modifikátor public
nebo žádný modifikátor (balíček-soukromý) stejně jako u tříd nejvyšší úrovně a se stejným významem., Pro členy existují dva další modifikátory přístupu: private
a protected
. Modifikátor private
určuje, že člen může být přístupný pouze ve své vlastní třídě. Modifikátor protected
určuje, že člen může být přístupný pouze ve svém vlastním balíčku (jako u balíčku-private) a navíc podtřídou své třídy v jiném balíčku.
následující tabulka ukazuje přístup k členům povoleným každým modifikátorem.,Modifier
public
protected
private
The first data column indicates whether the class itself has access to the member defined by the access level., Jak můžete vidět, třída má vždy přístup ke svým vlastním členům. Druhý sloupec označuje, zda mají třídy ve stejném balíčku jako třída (bez ohledu na jejich rodičovství) přístup k členovi. Třetí sloupec udává, zda podtřídy třídy deklarované mimo tento balíček mají přístup k členovi. Čtvrtý sloupec označuje, zda mají všechny třídy přístup k členovi.
úrovně přístupu vás ovlivňují dvěma způsoby., Za prvé, když používáte třídy, které pocházejí z jiného zdroje, jako jsou třídy na platformě Java, úrovně přístupu určují, které členy těchto tříd mohou vaše vlastní třídy používat. Za druhé, když píšete třídu, musíte se rozhodnout, jakou úroveň přístupu by měla mít každá členská proměnná a každá metoda ve vaší třídě.
podívejme se na sbírku tříd a uvidíme, jak úrovně přístupu ovlivňují viditelnost. Následující obrázek ukazuje čtyři třídy v tomto příkladu a jak jsou příbuzné.,
Třídy a Balíčky Příkladu Používá k Ilustraci Úrovně Přístupu
následující tabulka ukazuje, kde členové Alpha třídy jsou viditelné pro jednotlivé modifikátory přístupu, který může být aplikován na ně.,ha
public
protected
private
If other programmers use your class, you want to ensure that errors from misuse cannot happen., Úrovně přístupu vám mohou pomoci.
- použijte nejvíce omezující úroveň přístupu, která má smysl pro konkrétního člena. Použijte
private
, pokud nemáte dobrý důvod. - Vyhněte se
public
pole s výjimkou konstant. (Mnoho příkladů v tutoriálu používá veřejná pole. To může pomoci stručně ilustrovat některé body, ale nedoporučuje se pro výrobní kód.) Veřejná pole mají tendenci vás propojit s konkrétní implementací a omezit vaši flexibilitu při změně kódu.