i Java hjälper Access-modifierare till att begränsa omfattningen av en klass, konstruktor, variabel, metod eller datamedlem. Det ger säkerhet, tillgänglighet etc till användaren beroende på vilken åtkomstmodifierare som används med elementet. Låt oss lära oss mer om Java-åtkomstmodifierare, deras typer och användningen av åtkomstmodifierare i den här artikeln.
Typer av åtkomstmodifierare i Java
Det finns fyra typer av åtkomstmodifierare tillgängliga i Java:
- Standard – Inget nyckelord krävs
- Privat
- Skyddad
- offentlig
1. Standardåtkomstmodifierare
När ingen åtkomstmodifierare anges för en klass, metod eller datamedlem – sägs den ha standard åtkomstmodifierare som standard. Datamedlemmarna, klasserna eller metoderna som inte deklareras med några åtkomstmodifierare, dvs. som har standardåtkomstmodifierare, är tillgängliga endast i samma paket .
I det här exemplet kommer vi att skapa två paket och klasserna i paketen kommer att ha standardåtkomstmodifierare och vi kommer att försöka komma åt en klass från ett paket från en klass i det andra paketet.
Program 1:
Java // Java program to illustrate default modifier package p1; // Class Geek is having Default access modifier class Geek { void display() { System.out.println('Hello World!'); } }>
Program 2:
hur många miljoner är det i en miljardJava
// Java program to illustrate error while // using class from different package with // default modifier package p2; import p1.*; // This class is having default access modifier class GeekNew { public static void main(String args[]) { // Accessing class Geek from package p1 Geek obj = new Geek(); obj.display(); } }> Produktion:
Compile time error>
2. Modifierare för privat åtkomst
Modifieraren för privat åtkomst anges med nyckelordet privat . De metoder eller datamedlemmar som förklarats som privata är endast tillgängliga inom klassen där de deklareras.
- Alla andra klass av de samma paket kommer inte att kunna komma åt dessa medlemmar.
- Toppnivåklasser eller gränssnitt kan inte deklareras som privata pga
- privat betyder endast synlig inom den omgivande klassen.
- skyddad betyder endast synlig inom den omslutande klassen och eventuella underklasser
Därför gäller dessa modifierare när det gäller tillämpning på klasser endast på kapslade klasser och inte på toppnivåklasser
I det här exemplet kommer vi att skapa två klasser A och B inom samma paket p1. Vi kommer att förklara en metod i klass A som privat och försöka komma åt denna metod från klass B och se resultatet.
javascript-variabel globalJava
// Java program to illustrate error while // Using class from different package with // Private Modifier package p1; // Class A class A { private void display() { System.out.println('techcodeview.com'); } } // Class B class B { public static void main(String args[]) { A obj = new A(); // Trying to access private method // of another class obj.display(); } }> Produktion:
error: display() has private access in A obj.display();>
3. Protected Access Modifier
Modifieraren för skyddad åtkomst anges med nyckelordet skyddad .
De metoder eller datamedlemmar som förklarats som skyddade är tillgänglig inom samma paket eller underklasser i olika paket.
I det här exemplet kommer vi att skapa två paket p1 och p2. Klass A i p1 är offentlig för att komma åt den i p2. Metodvisningen i klass A är skyddad och klass B ärvs från klass A och denna skyddade metod nås sedan genom att skapa ett objekt av klass B.
Program 1:
Java // Java Program to Illustrate // Protected Modifier package p1; // Class A public class A { protected void display() { System.out.println('techcodeview.com'); } }>
Program 2:
// Java program to illustrate // protected modifier package p2; // importing all classes in package p1 import p1.*; // Class B is subclass of A class B extends A { public static void main(String args[]) { B obj = new B(); obj.display(); } }> Produktion:
techcodeview.com>
Offentlig tillgång modifierare
Modifieraren för offentlig åtkomst anges med nyckelordet offentlig .
- Offentlig tillgångsmodifierare har bredaste omfattning bland alla andra åtkomstmodifierare.
- Klasser, metoder eller datamedlemmar som deklareras som offentliga är tillgänglig från överallt i programmet. Det finns ingen begränsning av omfattningen av medlemmar av offentliga uppgifter.
Program 1:
Java // Java program to illustrate // public modifier package p1; public class A { public void display() { System.out.println('techcodeview.com'); } }> Program 2:
Java package p2; import p1.*; class B { public static void main(String args[]) { A obj = new A(); obj.display(); } }> Produktion:
char tostring java
techcodeview.com>
Viktiga punkter:
- Om andra programmerare använder din klass, försök att använda den mest restriktiva åtkomstnivån som är vettig för en viss medlem. Använd privat om du inte har en bra anledning att inte göra det.
- Undvik offentliga fält förutom konstanter.
Algoritm för att använda åtkomstmodifierare i Java
Här är en grundläggande algoritm för att använda åtkomstmodifierare i Java:
- Definiera en klass: Skapa en klass som representerar objektet du vill hantera.
- Definiera instansvariabler: Inom klassen definierar du instansvariabler som representerar den data du vill hantera.
- Ange en åtkomstmodifierare: För varje instansvariabel, ange en åtkomstmodifierare som bestämmer synligheten för variabeln. De tre huvudsakliga åtkomstmodifierarna i Java är privata, skyddade och offentliga.
- Använd privat för variabler som bara ska vara tillgängliga inom klassen: Om du vill förhindra åtkomst till en variabel utanför klassen, använd modifieraren för privat åtkomst. Detta är den mest restriktiva åtkomstmodifieraren och ger den högsta nivån av inkapsling.
- Använd skyddat för variabler som ska vara tillgängliga inom klassen och dess underklasser : Om du vill tillåta åtkomst till en variabel från klassen och dess underklasser, använd modifieraren för skyddad åtkomst. Detta är mindre restriktivt än privat och ger en viss grad av arv.
- Använd public för variabler som ska vara tillgängliga var som helst : Om du vill tillåta åtkomst till en variabel var som helst, använd public access modifier. Detta är den minst restriktiva åtkomstmodifieraren och ger den minsta mängden inkapsling.
- Använd accessor- och mutatormetoder för att hantera åtkomst till variablerna: För att komma åt och modifiera variablerna, använd accessor (getter) och mutator (setter) metoder, även om variablerna har en public access modifier. Detta ger en abstraktionsnivå och gör din kod mer underhållbar och testbar.
Vanliga frågor i Access Modifiers
1. Vad är åtkomstmodifierare i Java?
Åtkomstmodifierare i Java är de nyckelord som används för att kontrollera användningen av metoderna, konstruktörerna, fälten och metoderna i en klass.
2. Vad är void i Java?
Void i Java används för att ange inget returvärde med metoden.
3. Vilka är de 12 modifierarna i Java?
12 Modifierare i Java är offentliga, privata, skyddade, standard, slutgiltiga, synkroniserade, abstrakta, infödda, strictfp, transienta och flyktiga.