Heim  >  Artikel  >  Java  >  Einführung und Verständnis von Java-Zugriffsberechtigungen

Einführung und Verständnis von Java-Zugriffsberechtigungen

巴扎黑
巴扎黑Original
2017-07-17 17:59:581420Durchsuche

1. Was sind Zugriffsrechte?

Der sichtbare Bereich globaler Variablen und Methoden in der Klasse, dh der Bereich, der durch Objektreferenzen angezeigt werden kann.

2. Sichtbarer Bereich von Berechtigungsmodifikatoren

  public  protected private
包范围 ×
其他包 × ×
能否被继承 ×
public

geschützt privat

Packbereich

×
package com.javase.temp;import org.junit.Test;public class TempTest {private String str = new String("abc");

    @Testpublic void printStr() {
        System.out.println(this.str);
    }
}
Andere Pakete

×
×
package com.javase.temp;import org.junit.Test;public class TempTest01 {

    @Testpublic void test01() {
        TempTest obj = new TempTest();
        obj.printStr();//通过TempTest类型的public类型的方法间接访问了private类型的变量,在访问时不知道private类型变量的情况    }
}
Kann es vererbt werden

×

3. Verständnis der Sichtbarkeit

Eine Variable oder Methode ist für eine andere Klasse B sichtbar, was bedeutet, dass die Variable oder Methode direkt über eine Objektreferenz verfügbar gemacht werden kann B hingegen bedeutet unsichtbar, dass auf die Variable oder Methode nicht direkt über die Objektreferenz in Klasse B zugegriffen werden kann.

Eine Variable oder Methode, die für eine Klasse unsichtbar ist, bedeutet nicht, dass die Variable oder Methode nicht in Klasse B angezeigt werden kann, aber sie kann in Klasse B nicht direkt verfügbar gemacht werden, sondern kann indirekt verfügbar gemacht werden. Erscheint indirekt über Methodenverweise öffentlicher oder geschützter Typen.

Offensichtlich gibt es in der TempTest-Klasse eine Mitgliedsvariable str, die ein privater Typ ist und für andere Klassen nicht sichtbar ist, was bedeutet, dass die Variable kann nicht durch das Objekt übergeben werden. Die Referenzform erscheint in anderen Klassen und kann indirekt in anderen Klassen durch Aufrufen der printStr-Methode angezeigt werden. Ausgabe: TempTest in der TempTest01-Klasse aufrufen Die Methode printStr im Objekt obj gibt den Wert der privaten Variablen str aus. str wird in TempTest01 nicht direkt verfügbar gemacht, sondern direkt in der Methode printStr von TempTest, und die Methode printStr wird direkt in TempTest verfügbar gemacht, wodurch str indirekt in TempTest verfügbar gemacht wird. Obwohl der Wert der privaten Typvariablen in TempTest in TempTest01 ausgegeben wird, ist diese Ausgabe zufällig und TempTest01 hat keine Möglichkeit zu wissen, dass das Ausgabeergebnis von der Variablen str stammt. und die Ausgabe ist bedeutungslos. Eine Variable, die so konzipiert ist, dass die Außenwelt nicht direkt darauf zugreifen kann, wird bei dieser Art von Operation normalerweise als Zwischenprozess verwendet, um andere sichtbare Variablen und Methoden zu unterstützen.

Das obige ist der detaillierte Inhalt vonEinführung und Verständnis von Java-Zugriffsberechtigungen. 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