Maison  >  Article  >  Java  >  Introduction et compréhension des autorisations d'accès Java

Introduction et compréhension des autorisations d'accès Java

巴扎黑
巴扎黑original
2017-07-17 17:59:581465parcourir

1. Que sont les droits d'accès ?

La portée visible des variables globales et des méthodes dans la classe, c'est-à-dire la portée qui peut apparaître à travers les références d'objet.

2. Plage visible du modificateur d'autorisation

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

protégé privé

Gamme de pack

×
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);
    }
}
Autres packages

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

    @Testpublic void test01() {
        TempTest obj = new TempTest();
        obj.printStr();//通过TempTest类型的public类型的方法间接访问了private类型的变量,在访问时不知道private类型变量的情况    }
}
Peut-il être hérité

×

3. Compréhension de la visibilité

Une variable ou une méthode est visible par une autre classe B, ce qui signifie que la variable ou la méthode peut être directement exposée via une référence d'objet In. B, au contraire, invisible signifie que la variable ou la méthode n'est pas accessible directement via la référence d'objet dans la classe B.

Une variable ou une méthode étant invisible pour une classe ne signifie pas que la variable ou la méthode ne peut pas apparaître dans la classe B, mais elle ne peut pas être directement exposée dans la classe B et peut être exposée indirectement. Apparaît indirectement via des références de méthodes de types publics ou protégés.

Évidemment, il existe une variable membre str dans la classe TempTest, qui est un type privé et n'est pas visible par les autres classes, ce qui signifie que le la variable ne peut pas être transmise via l'objet. La forme de référence apparaît dans d'autres classes et peut apparaître indirectement dans d'autres classes en appelant la méthode printStr. Sortie : Appelez TempTest dans la classe TempTest01. La méthode printStr dans l'objet obj génère la valeur de la variable privée str. str n'est pas directement exposé dans TempTest01, mais est directement exposé dans la méthode printStr de TempTest, et la méthode printStr est directement exposée dans TempTest, rendant ainsi str indirectement exposé dans TempTest. Bien que la valeur de la variable de type privé dans TempTest soit sortie dans TempTest01, cette sortie est aléatoire et TempTest01 n'a aucun moyen de savoir que le résultat de sortie provient de la variable str, et le résultat n'a aucun sens. Une variable conçue pour ne pas être directement accessible par le monde extérieur est généralement utilisée comme processus intermédiaire dans ce type d'opération pour assister d'autres variables et méthodes visibles.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn