java - 为什么此私有静态变量能被访问呢?
高洛峰
高洛峰 2017-04-18 10:47:37
0
11
1452
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变量却报错,为何?

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

répondre à tous(11)
小葫芦

Théoriquement, les modificateurs d'accès ne sont pas complètement nécessaires et n'affecteront pas la logique du programme. Ceci uniquement pendant la phase de compilation pour aider les programmeurs à écrire du code plus sûr.
Je comprends la confusion du questionneur. Il pense qu'il est plus approprié d'utiliser this.i ici (bien sûr, supprimez le mot-clé merdique static Cette vue peut vraiment rendre certaines personnes folles).
Rappelez-vous : ces modificateurs d'accès n'ont rien à voir avec le contexte d'exécution. Par exemple, private vérifiera uniquement si le code que vous utilisez pour accéder à cette variable est écrit dans la classe actuelle au moment de la compilation. aussi grossier que ça.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal