【发布时间】:2015-08-16 17:21:55
【问题描述】:
在回答是“编译失败”的问题中,因为在 go 方法中 h1 超出了范围。 h1 对我来说看起来很公开,有人可以解释为什么它超出范围吗?一个方法什么时候可以访问其他变量?
public class Happy {
int id;
Happy(int i) { id = i; }
public static void main(String [] args) {
Happy h1 = new Happy(1);
Happy h2 = h1.go(h1);
System.out.println(h2.id);
}
Happy go(Happy h) {
Happy h3 = h;
h3.id = 2;
h1.id = 3;
return h1;
}
}
【问题讨论】: