就近原则(Principle of Proximity)-把相关的操作放在一起,例如让注释靠近它所描述的代码,让控制循环的代码靠近循环本身等。变量的就近原则指尽可能在靠近第一次使用变量的位置声明和定义该变量。就近原则实际上也是变量的作用域最小化的一种实现手段。过早地声
明局部变量不仅会使它的作用域过早地扩展,而且结束得也过于晚了。局部变量的作用域从它被声明的点开始扩展,一直到外围块的结束处。如果变量在“使用它的块”之外被声明的,当程序退出该块之后,该变量仍是可见的。如果变量在它的目标使用区域之前或之后被意外地使用的话,后果将可能是灾难性的。
public class Test { String name="Tom"; //成员变量 public Test(String name){ name = name; } public static void main(String [] args){ Test t = new Test("Jack"); System.out.println(t.name); } }
形参和成员变量重名,根据变量使用的就近原则,会访问到成员变量,所以会输出 Tom
解决方法:通过this引用成员变量,将局部变量赋值给成员变量 所以会输出 Jack