Heim  >  Artikel  >  Java  >  Die Beziehung zwischen Java-Funktionszugriffsmodifikatoren und Feldzugriff

Die Beziehung zwischen Java-Funktionszugriffsmodifikatoren und Feldzugriff

王林
王林Original
2024-04-25 18:09:021027Durchsuche

Der Zugriffsmodifikator einer Java-Funktion wirkt sich auf den Zugriff auf Felder in einer Klasse aus: Öffentliche Funktionen können auf alle Felder zugreifen, unabhängig von den Feldzugriffsberechtigungen. Geschützte Funktionen können nur auf Felder mit geschütztem oder öffentlichem Zugriff zugreifen. Die Standardfunktion kann nur auf Felder mit Standard- oder öffentlichem Zugriff zugreifen. Private Funktionen können nur auf Felder mit privatem Zugriff zugreifen.

Java 函数的访问权限修饰符之与字段访问的联系

Der Zusammenhang zwischen Java-Funktionszugriffsmodifikatoren und Feldzugriff

Die Zugriffsmodifikatoren von Java-Funktionen können ihren Zugriff auf Felder in einer Klasse einschränken. Das Verständnis dieses Zusammenhangs ist entscheidend für die Aufrechterhaltung der Sicherheit und Wartbarkeit Ihres Codes.

Zugriffsberechtigungsmodifikatoren

In Java gibt es vier Funktionszugriffsberechtigungsmodifikatoren:

  • public: Allen Klassen den Zugriff auf Funktionen erlauben.
  • geschützt: Ermöglichen Sie Klassen und Unterklassen, die zum selben Paket gehören, den Zugriff auf Funktionen.
  • Standard (kein Modifikator): Nur Klassen, die zum selben Paket gehören, dürfen auf die Funktion zugreifen.
  • privat: Erlaube nur der Klasse selbst den Zugriff auf Funktionen.

Links des Feldzugriffs

Der Zugriffsmodifikator einer Funktion beeinflusst den Zugriff auf Felder in der Klasse:

  • Wenn eine Funktion öffentlich ist, kann sie auf alle Felder zugreifen, unabhängig von den Zugriffsrechten des Felds.
  • Wenn die Funktion geschützt ist, dann kann nur auf Felder mit geschütztem oder öffentlichem Zugriff zugegriffen werden.
  • Wenn die Funktion Standard ist, sind nur Felder mit Standard oder öffentlichem Zugriff zugänglich.
  • Wenn die Funktion privat ist, kann nur auf Felder mit privatem Zugriff zugegriffen werden.

Praktischer Fall

Betrachten Sie die folgende Klasse:

public class MyClass {
    private int privateField;
    protected int protectedField;
    int defaultField;
    public int publicField;

    public void publicMethod() {
        // 可以访问所有字段
        System.out.println(privateField);
        System.out.println(protectedField);
        System.out.println(defaultField);
        System.out.println(publicField);
    }

    protected void protectedMethod() {
        // 可以访问 protected 和 public 字段
        System.out.println(protectedField);
        System.out.println(publicField);
    }

    void defaultMethod() {
        // 可以访问 default 和 public 字段
        System.out.println(defaultField);
        System.out.println(publicField);
    }

    private void privateMethod() {
        // 只能访问 private 字段
        System.out.println(privateField);
    }
}

In diesem Fall:

  • publicMethod() kann auf alle Felder zugreifen, da es sich um eine öffentliche Methode handelt. publicMethod() 可以访问所有字段,因为它是公共方法。
  • protectedMethod() 可以访问 protectedFieldpublicField,因为它是受保护方法。
  • defaultMethod() 可以访问 defaultFieldpublicField,因为它是默认为包内可见的方法。
  • privateMethod() 只能访问 privateField
  • protectedMethod() hat Zugriff auf protectedField und publicField, da es sich um eine geschützte Methode handelt.
🎜defaultMethod() hat Zugriff auf defaultField und publicField, da es sich um eine Methode handelt, die standardmäßig im Paket sichtbar ist. 🎜🎜privateMethod() kann nur auf privateField zugreifen, da es sich um eine private Methode handelt. 🎜🎜

Das obige ist der detaillierte Inhalt vonDie Beziehung zwischen Java-Funktionszugriffsmodifikatoren und Feldzugriff. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn