|
发表于 2015-3-2 15:44:54
|
显示全部楼层
静态方法传入的参数p跟main方法中创建的类p不是同一个,但都指向类p,答案C将参数p指向新创建的类,这没有改变main方法中创建类p的weight值.
- static void changePayload(Payload p)
- {
- System.out.println("pp1 is " + p);
- p = new Payload(420);
- System.out.println("pp2 is " + p);
- }
-
- public static void main(String[] args)
- {
- Payload p = new Payload(200);
- p.setWeight(1024);
- System.out.println("p1 is " + p);
- changePayload(p);
- System.out.println("p2 is " + p);
- System.out.println("p is " + p);
- }
复制代码
若将Payload中的toString方法注释掉,添加打印方法,就可以看出:
- p1 is zc.Payload@6406c7e
- pp1 is zc.Payload@6406c7e
- pp2 is zc.Payload@6f92c766
- p2 is zc.Payload@6406c7e
- p is zc.Payload@6406c7e
复制代码 |
|