黑马程序员技术交流社区
标题:
由温习内部类而得到的一点感悟与大家分享
[打印本页]
作者:
朱玉玺
时间:
2013-2-14 22:06
标题:
由温习内部类而得到的一点感悟与大家分享
首先,java中有两个我们经常用,却也经常忽视的原则:就近原则和命名空间唯一原则(自己总结的,如有不当,请拍砖)
1.
就近原则
所谓就近原则,就是说,虚拟机在找一个变量时,会先从离它最近的一对{ }中找,如果找到则停止查找(其他{ }或类成员若有同名变量则会找不到),如果没有则会到外层{ }中找,直到类成员变量这一级,如果类成员也没有则去父类中找,直到Object类结束。
2.
命名空间唯一原则
所谓命名空间唯一原则,是指
类名
及类的
属性名
和
方法名
在整个java命名空间中是唯一的,命名空间唯一以保证调用唯一。
你会说,不对啊,我这个类中有个属性叫x,有个成员方法里边有个局部变量x,他们名字不是一样吗?不一样,你要调用该类的属性x,必须用this.x,这是老毕讲过的,更精确的说是
包名.类名.
this.x。但是一般情况下前边的包名.类名.this没有写,为什么?是因为
就近原则
在起作用。
package cn.zyx.test;
public class Test {
private int num=5;
public void println(){
int num=8;
System.out.println("println方法的num:"+num);//8
System.out.println("Test的属性num:"+this.num);//5
System.out.println("Test的属性num:"+Test.this.num);//5
System.out.println("Test的属性num:"+cn.zyx.test.Test.this.num); //5
}
}
class TestMain{
public static void main(String[] args){
Test test= new Test();
test.println();
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2