Maison > Questions et réponses > le corps du texte
class Test{
private static int i = 1;
public static void main(String[] args){
Test test = new Test();
System.out.println(test.i); //此处为何能访问到私有的i变量呢?
}
}
如果与Test类不同包,调用i变量却报错,为何?
天蓬老师2017-04-18 10:49:37
Parce que la fonction principale est aussi une fonction statique de la classe Test
PHPz2017-04-18 10:49:37
Je vais vous donner cette photo. Vous pouvez jeter un oeil, notamment la différence entre protégé et par défaut.
黄舟2017-04-18 10:49:37
Le mot-clé private signifie qu'à l'exception de la classe contenant ce membre, les autres classes ne peuvent pas accéder à ce membre, y compris les autres classes de ce package. Ainsi, non seulement les différents packages, mais également le même package ne sont pas accessibles.
怪我咯2017-04-18 10:49:37
Si cela ne fonctionne pas, private
A quoi servent les variables modifiées ?
PHP中文网2017-04-18 10:49:37
Si cela ne fonctionne pas, alors où est utilisé le i ? Ne serait-ce pas déclarer un i en vain ?
Également privé, je ne peux pas être appelé par d'autres classes lors de l'appel de la classe Test, et cette classe n'est pas restreinte.
高洛峰2017-04-18 10:49:37
Évidemment, vous devez réapprendre : le public privé statique protégeait ces quatre modificateurs courants dans la programmation orientée objet
大家讲道理2017-04-18 10:49:37
Puisque i est statique, test.i (instance. variable statique) est équivalent à Test.i (classe. variable statique), et i est privé, il n'est donc accessible que dans la classe Test.
PHP中文网2017-04-18 10:49:37
Il s'agit d'une question de programmation de base. J'espère revoir la définition et la portée.
伊谢尔伦2017-04-18 10:49:37
Étant donné que les variables à modification privée sont accessibles dans cette classe, il s'agit d'une question sur les modificateurs d'accès.