初级阶段
2017-12-10 16:51
System.out.println("访问外部类的score"+HelloWorld.score);
静态成员属于整个类,即使没有对象,静态成员还是存在的。其他普通成员,只有创建相应类对象的时候才会分配内存,静态成员在编译时就会分配一个内存,即使没有对象,也可以用类名直接访问。要注意的是,它只会占用一个内存,所有当有不同对象访问静态成员时,静态成员的值都是一样的,并且有一个对象改变了它的值,所有其他对象访问该静态成员时,都会显示改变后的值
因为内类有权限访问外部类中的所有数据,加this是为了区分,相当于对象名吧。之前加this因为内部类和外部类都有name,因为方法具有就近原则不加this关键字标识的话,系统会直接取内部类中的name。说白了就是为了能让系统区分,HelloWorld.socre的意思是访问HelloWorld类(外部类)中的Score变量,没加this是因为只有一个score不用区分。
因为已经规定了外部类静态成员与内部类相同时,调用方法为“类名.静态成员”,
你要问为什么,其实我也不知道,大概是静态成员比较特殊吧
this是指当前对象 一般 用于get set 方法 ,成员变量和在方法中的局部变量命名相同是,需要在方法中使用成员变量需要使用 this。
这是我对this的理解。希望对你有帮助。
Java入门第二季 升级版
531024 学习 · 6164 问题
相似问题