hozzáférési szint módosítók meghatározzák, hogy más osztályok használhatnak-e egy adott mezőt, vagy hivatkozhatnak egy adott módszerre. A hozzáférés-vezérlésnek két szintje van:
- a felső szinten –
public
vagy csomag-privát (nincs explicit módosító). - tag szinten –
public
,private
,protected
vagy csomag-privát (nincs explicit módosító).,
egy osztály deklarálható a public
módosítóval, ebben az esetben ez az osztály minden osztály számára látható. Ha egy osztálynak nincs módosítója (az alapértelmezett, más néven csomag-privát), akkor csak a saját csomagján belül látható (a csomagok a kapcsolódó osztályok csoportjai egy későbbi leckében megtudhatja őket.)
tag szinten apublic
módosítót vagy nem módosítót (csomag-privát) is használhatja, ugyanúgy, mint a felső szintű osztályoknál, ugyanolyan jelentéssel., A tagoknak két további hozzáférési módosítójuk van: private
és protected
. A private
módosító meghatározza, hogy a tag csak a saját osztályában érhető el. A protected
módosító meghatározza, hogy a tag csak a saját csomagjában érhető el (mint a package-private esetében), továbbá az osztály egy alosztálya egy másik csomagban.
az alábbi táblázat az egyes módosítók által engedélyezett tagokhoz való hozzáférést mutatja.,Modifier
public
protected
private
The first data column indicates whether the class itself has access to the member defined by the access level., Mint látható, egy osztály mindig hozzáférhet a saját tagjai. A második oszlop azt jelzi, hogy az osztályhoz tartozó osztályok (függetlenül a szülőktől) hozzáférhetnek-e a taghoz. A harmadik oszlop azt jelzi, hogy a csomagon kívül deklarált osztály alosztályai hozzáférhetnek-e a taghoz. A negyedik oszlop azt jelzi, hogy minden osztály hozzáfér-e a taghoz.
A hozzáférési szintek kétféle módon befolyásolják Önt., Először is, amikor egy másik forrásból származó osztályokat használ, például a Java platform osztályait, a hozzáférési szintek határozzák meg, hogy a saját osztályai mely osztályokat használhatják. Másodszor, amikor egy osztályt írsz, el kell döntened, hogy milyen hozzáférési szinttel kell rendelkeznie minden tagváltozónak és az osztályod minden metódusának.
nézzük meg az osztályok gyűjteményét, és nézzük meg, hogy a hozzáférési szintek hogyan befolyásolják a láthatóságot. Az alábbi ábra a példában szereplő négy osztályt mutatja, valamint azt, hogy ezek hogyan kapcsolódnak egymáshoz.,
a hozzáférési szintek
szemléltetésére használt példa osztályai és csomagjai a következő táblázat azt mutatja, hogy az Alfa osztály tagjai hol láthatók a hozzájuk alkalmazható hozzáférési módosítók mindegyikén.,ha
public
protected
private
If other programmers use your class, you want to ensure that errors from misuse cannot happen., A hozzáférési szintek segíthetnek ebben.
- használja a legszigorúbb hozzáférési szintet, amelynek van értelme egy adott tag számára. Használja a
private
– ot, hacsak nincs jó oka arra, hogy ne. - kerülje a
public
mezőket az állandók kivételével. (A bemutató számos példája nyilvános mezőket használ. Ez segíthet, hogy bemutassa néhány pontot tömören, de nem ajánlott termelési kód.) A nyilvános mezők általában egy adott implementációhoz kapcsolnak, és korlátozzák a kód módosításának rugalmasságát.