ändra åtkomstnivå avgöra om andra klasser kan använda ett visst fält eller åberopa en viss metod. Det finns två nivåer av åtkomstkontroll:
- på toppnivå
public
, eller paket-privat (ingen explicit modifierare). - på medlemsnivå
public
,private
,protected
, eller paket-privat (ingen explicit modifierare).,
en klass kan deklareras med modifierarenpublic
, I vilket fall den klassen är synlig för alla klasser överallt. Om en klass inte har någon modifierare (standard, även känd som paket-privat), är den synlig endast i sitt eget paket (paket heter grupper av relaterade klasser du kommer att lära dig om dem i en senare lektion.)
på medlemsnivå kan du också användapublic
modifierare eller ingen modifierare (paket-privat) precis som med toppklasser och med samma betydelse., För medlemmar finns det två ytterligare åtkomstmodifierare: private
ochprotected
. private
– modifieraren anger att medlemmen endast kan nås i sin egen klass. protected
-modifieraren anger att medlemmen endast kan nås inom sitt eget paket (som med paket-privat) och dessutom av en underklass av sin klass i ett annat paket.
Följande tabell visar åtkomst till medlemmar som tillåts av varje modifierare.,Modifier
public
protected
private
The first data column indicates whether the class itself has access to the member defined by the access level., Som du kan se har en klass alltid tillgång till sina egna medlemmar. Den andra kolumnen anger om klasser i samma paket som klassen (oavsett föräldraskap) har åtkomst till medlemmen. Den tredje kolumnen anger om underklasser av klassen som deklareras utanför detta paket har åtkomst till medlemmen. Den fjärde kolumnen anger om alla klasser har åtkomst till medlemmen.
åtkomstnivåer påverkar dig på två sätt., Först, när du använder klasser som kommer från en annan källa, till exempel klasserna i Java-plattformen, bestämmer åtkomstnivåerna vilka medlemmar i de klasserna dina egna klasser kan använda. För det andra, när du skriver en klass, måste du bestämma vilken åtkomstnivå varje medlem variabel och varje metod i din klass ska ha.
låt oss titta på en samling klasser och se hur åtkomstnivåer påverkar synligheten. Följande figur visar de fyra klasserna i det här exemplet och hur de är relaterade.,
klasser och paket av exemplet som används för att illustrera åtkomstnivåer
Följande tabell visar var medlemmarna i Alfaklassen är synliga för var och en av de åtkomstmodifierare som kan tillämpas på dem.,ha
public
protected
private
If other programmers use your class, you want to ensure that errors from misuse cannot happen., Åtkomstnivåer kan hjälpa dig att göra detta.
- använd den mest restriktiva åtkomstnivån som är meningsfull för en viss medlem. Använd
private
om du inte har en bra anledning att inte göra det. - Undvik
public
fält utom konstanter. (Många av exemplen i handledningen använder offentliga fält. Detta kan bidra till att illustrera vissa punkter kortfattat, men rekommenderas inte för produktionskod.) Offentliga fält tenderar att länka dig till en viss implementering och begränsa din flexibilitet i att ändra din kod.