Der sichtbare Bereich globaler Variablen und Methoden in der Klasse, dh der Bereich, der durch Objektreferenzen angezeigt werden kann.
|
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); } } Nach dem Login kopieren |
√ |
× | × package com.javase.temp;import org.junit.Test;public class TempTest01 { @Testpublic void test01() { TempTest obj = new TempTest(); obj.printStr();//通过TempTest类型的public类型的方法间接访问了private类型的变量,在访问时不知道private类型变量的情况 } } Nach dem Login kopieren |
||||||||||||||||
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!