日期:2014-05-20  浏览次数:20687 次

构造函数
public class Test12{
String name = "Tom";
public Test12(String name){
name = name;
}
public static void main(String[] args) {
Test12 t = new Test12("Jack");
System.out.println(t.name);
}
}

这道题的输出为什么不是Jack?谁能讲一下原理?

------解决方案--------------------
应该写成this.name = name;
变量就近原则,先找作用域里的变量值,如果找不到才会到类属性里找。你这里name=name;两个name都是构造方法的参数String name,等于是变量name自己赋值给自己。
this.name就会指向属性name了

------解决方案--------------------

没用this关键字呀