Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> Java

Java-Zugriffsmodifikatoren

Java-Zugriffsmodifikatoren

In diesem Tutorial lernen wir den Java Access Modifier, seine Typen und ihre Verwendung anhand von Beispielen kennen.

Was sind Zugriffsmodifikatoren?

In Java werden Zugriffsmodifikatoren verwendet, um die Zugänglichkeit (Sichtbarkeit) von Klassen, Schnittstellen, Variablen, Methoden, Konstruktoren, Datenelementen und den Setter-Methoden festzulegen. Zum Beispiel

class Animal {
    public void method1() {...}

   private void method2() {...}
}

Im obigen Beispiel haben wir 2 Methoden deklariert:method1() und method2(). Hier,

Beachten Sie das Schlüsselwort public und private . Dies sind Zugriffsmodifikatoren in Java. Sie werden auch als Sichtbarkeitsmodifikatoren bezeichnet.

Hinweis :Sie können den Zugriffsmodifikator von Getter-Methoden nicht festlegen.


Arten von Zugriffsmodifikatoren

Bevor Sie etwas über Arten von Zugriffsmodifikatoren lernen, sollten Sie sich mit Java-Paketen auskennen.

Es gibt vier Zugriffsmodifizierer-Schlüsselwörter in Java und sie sind:

Modifikator Beschreibung
Standard Deklarationen sind nur innerhalb des Pakets sichtbar (Paket privat)
Privat Deklarationen sind nur innerhalb der Klasse sichtbar
Geschützt Deklarationen sind innerhalb des Pakets oder aller Unterklassen sichtbar
Öffentlich Erklärungen sind überall sichtbar

Standardzugriffsmodifikator

Wenn wir keinen Zugriffsmodifikator explizit für Klassen, Methoden, Variablen usw. angeben, wird standardmäßig der Standardzugriffsmodifikator berücksichtigt. Zum Beispiel

package defaultPackage;
class Logger {
    void message(){
        System.out.println("This is a message");
    }
}

Hier der Logger Klasse hat den Standardzugriffsmodifikator. Und die Klasse ist für alle Klassen sichtbar, die zum defaultPackage gehören Paket. Wenn wir jedoch versuchen, den Logger zu verwenden Klasse in einer anderen Klasse außerhalb von defaultPackage erhalten wir einen Kompilierungsfehler.


Privater Zugriffsmodifikator

Wenn Variablen und Methoden deklariert werden private , kann außerhalb der Klasse nicht auf sie zugegriffen werden. Zum Beispiel

class Data {
    // private variable
    private String name;
}

public class Main {
    public static void main(String[] main){

        // create an object of Data
        Data d = new Data();

        // access private variable and field from another class
        d.name = "Programiz";
    }
}

Im obigen Beispiel haben wir eine private Variable namens name deklariert und eine private Methode namens display() . Wenn wir das Programm ausführen, erhalten wir die folgende Fehlermeldung:

Main.java:18: error: name has private access in Data
        d.name = "Programiz";
         ^

Der Fehler wird generiert, weil wir versuchen, auf die private Variable und die private Methode von Data zuzugreifen Klasse aus dem Main Klasse.

Sie fragen sich vielleicht, was passiert, wenn wir auf diese privaten Variablen zugreifen müssen. In diesem Fall können wir die Getter- und Setter-Methode verwenden. Zum Beispiel

class Data {
    private String name;

    // getter method
    public String getName() {
        return this.name;
    }
    // setter method
    public void setName(String name) {
        this.name= name;
    }
}
public class Main {
    public static void main(String[] main){
        Data d = new Data();

        // access the private variable using the getter and setter
        d.setName("Programiz");
        System.out.println(d.getName());
    }
}

Ausgabe :

The name is Programiz

Im obigen Beispiel haben wir eine private Variable namens name . Um auf die Variable aus der äußeren Klasse zuzugreifen, haben wir Methoden verwendet:getName() und setName() . Diese Methoden werden in Java getter und setter genannt.

Hier haben wir die Setter-Methode (setName() ), um der Variablen einen Wert zuzuweisen, und die Getter-Methode (getName() ), um auf die Variable zuzugreifen.

Wir haben this verwendet Schlüsselwort innerhalb von setName(), um auf die Variable der Klasse zu verweisen. Weitere Informationen zu diesem Schlüsselwort finden Sie unter Java this Keyword.

Hinweis Hinweis:Wir können Klassen und Schnittstellen in Java nicht als privat deklarieren. Die verschachtelten Klassen können jedoch als privat deklariert werden. Weitere Informationen finden Sie unter Java Nested and Inner Class.


Geschützter Zugriffsmodifikator

Wenn Methoden und Datenmember deklariert werden protected , können wir sowohl innerhalb desselben Pakets als auch von Unterklassen darauf zugreifen. Zum Beispiel

class Animal {
    // protected method
    protected void display() {
        System.out.println("I am an animal");
    }
}

class Dog extends Animal {
    public static void main(String[] args) {

        // create an object of Dog class
        Dog dog = new Dog();
         // access protected method
        dog.display();
    }
}

Ausgabe :

I am an animal

Im obigen Beispiel haben wir eine geschützte Methode namens display() im Tier Klasse. Das Tier Klasse wird von Dog geerbt Klasse. Weitere Informationen zur Vererbung finden Sie unter Java-Vererbung.

Dann haben wir ein Objekt Hund erstellt des Hundes Klasse. Mit dem Objekt haben wir versucht, auf die geschützte Methode der Elternklasse zuzugreifen.

Da auf geschützte Methoden von den untergeordneten Klassen aus zugegriffen werden kann, können wir auf die Methode von Animal zugreifen Klasse vom Hund Klasse.

Hinweis :Wir können keine Klassen oder Schnittstellen deklarieren protected in Java.


Öffentlicher Zugriffsmodifikator

Wenn Methoden, Variablen, Klassen usw. deklariert werden public , dann können wir von überall darauf zugreifen. Der Modifikator für den öffentlichen Zugriff hat keine Bereichseinschränkung. Zum Beispiel

// Animal.java file
// public class
public class Animal {
    // public variable
    public int legCount;

    // public method
    public void display() {
        System.out.println("I am an animal.");
        System.out.println("I have " + legCount + " legs.");
    }
}

// Main.java
public class Main {
    public static void main( String[] args ) {
        // accessing the public class
        Animal animal = new Animal();

        // accessing the public variable
        animal.legCount = 4;
        // accessing the public method
        animal.display();
    }
}

Ausgabe :

I am an animal.
I have 4 legs.

Hier,


Zugriffsmodifikatoren in einer Abbildung zusammengefasst

Zugriffsmodifikatoren werden hauptsächlich zur Kapselung verwendet. Ich kann uns dabei helfen, zu steuern, auf welchen Teil eines Programms die Mitglieder einer Klasse zugreifen können. Damit ein Datenmissbrauch verhindert werden kann. Weitere Informationen zur Kapselung finden Sie unter Java-Kapselung.


Java

  1. C#-Zugriffsmodifikatoren
  2. Java-Operatoren
  3. Java-Kommentare
  4. Java for-each-Schleife
  5. Java-Strings
  6. Java-Schnittstelle
  7. Anonyme Java-Klasse
  8. Java-Versuch-mit-Ressourcen
  9. Java-Anmerkungen
  10. Java-Assertionen