styra åtkomst till medlemmar i en klass

styra åtkomst till medlemmar i en klass

ä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: privateochprotected. 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 Class Package Subclass World public Y Y Y Y protected Y Y Y N no modifier Y Y N N private Y N N N

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 Beta Alphasub Gamma public Y Y Y Y protected Y Y Y N no modifier Y Y N N private Y N N N

Tips on Choosing an Access Level:

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.
  • Undvikpublic 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.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *