Java类的几个小问题
属性和关键词this
类的方法里用到类的属性,要不要加this?看下面两段代码
class it{
private int ok = 0;
public void cc(){
ok = 3;
System.out.println(ok);
System.out.println(this.ok);
}
}
执行结果为 3,3
class it{
private int ok = 0;
public void cc(){
int ok = 3;
System.out.println(ok);
System.out.println(this.ok);
}
}
执行结果 3,0
为什么两段代码执行结果不同呢?差别只在于方法里面的ok声明了。
因为在java语言中使用类方法,假定在类方法内出现一个变量,那么程序会先在当前代码块作用域内寻找,找不到就会在外层代码块内寻找,以此类推,若在整个方法中都不曾出现这个变量,那么它要不就是类的成员变量,要不就是错误。因此即便不加this也无妨。
所以当局部变量与成员变量相同名时,例如 this,x = x;this.x 是个成员变量,而x是个局部变量,用this
小错
先初始化再用
head = new DLinkedNode();
head.pre = null;
head.next=tail;
tail = new DLinkedNode();
tail.pre = head;
tail.next = null;