读书人

大家帮忙看看解决方案

发布时间: 2012-01-02 22:40:04 作者: rapoo

大家帮忙看看
public class ReferenceType {
public void changeReference(Point point) {
point = null;
}

public static void main(String[] args) {
Point point = new Point(1, 2);
ReferenceType test = new ReferenceType();
test.changeReference(point);
int x = point.x;
System.out.println("x 的值是 " + x );
}

}


test.changeReference(point); 调用这个后,下面是否会报空指针呢?
不报,可是为什么呢?

[解决办法]
形参和实参的问题
[解决办法]
不会报异常,

test.changeReference(point);
执行到这里得时候:把 point传进changeReference()里面

public void changeReference(Point point) {
point = null; //这里得point是changeReference里的局部变量,只在changeReference中有效
//和前面那个point没有任何关系,只是碰巧重名了
}

int x = point.x;

所以不会报异常。

如果把changeReference函数改下,就好理解了

public void changeReference(Point point2) {
point2 = null;
}

读书人网 >J2EE开发

热点推荐