黑马程序员技术交流社区

标题: 谁能帮我看看 [打印本页]

作者: 王涵    时间: 2013-9-27 14:41
标题: 谁能帮我看看
  1. public class ArugmentTest{
  2. static class IntA{

  3. private int a;

  4. public IntA(int a){ this.a = a; }

  5. public int getA() { return a; }

  6. public void setA(int a){ this.a = a; }
  7. }

  8. static public void change(int a){

  9. a = 3;
  10. }

  11. static public void change(IntA a){

  12. a.setA(3);
  13. }

  14. static public void changeRef(IntA a){

  15. a = new IntA(9);
  16. }

  17. public static void main(String[] args){

  18. int a = 2;

  19. change(a);

  20. System.out.print(a);

  21. IntA ia = new IntA(5);

  22. change(ia);

  23. System.out.print(ia.getA());

  24. changeRef(ia);

  25. System.out.println(ia.getA());
  26. }
  27. }<font face="宋体 " style="color: rgb(0, 0, 0); line-height: 1.6em;"><font style="line-height: 1.6em; font-size: 10.5pt;">在控制台上输出的是</font></font>
复制代码

作者: 杨增坤    时间: 2013-9-27 14:58
请把您要问题的问题贴出来啊
作者: Thunder_-_Li    时间: 2013-9-27 15:05
美女 虽然  你没有问什么  但我 跟你说 此程序运行的结果是:233    加油偶   。。。版主 和 老师都在看着你的努力 。。。。。你是最棒的
作者: wumuzhong    时间: 2013-9-27 15:26
int a = 2;
change(a);
System.out.print(a);
第一个输出是2,因为a是int基本数据类型的,作为实参传进chang()只是改变当前的数值,并没有改变a的地址数值,输出时也是输出地址里的数值。
IntA ia = new IntA(5);
change(ia);
System.out.print(ia.getA());
ia是对象变量,传进chang()后会改变地址数值,所以输出是3.
changeRef(ia);
System.out.println(ia.getA());
static public void changeRef(IntA a){
a = new IntA(9);}
这跟第二个同样是对象变量,但在changeref()中重新new了一个对象,把之前的对象地址替换了,但是属性数值a的的地址是在堆内存中,对象的地址在栈内存中,指向数值的地址还是不变,所以输出还是3.
作者: 王涵    时间: 2013-9-27 16:20
Thunder_-_Li 发表于 2013-9-27 15:05
美女 虽然  你没有问什么  但我 跟你说 此程序运行的结果是:233    加油偶   。。。版主 和 老师都在看着 ...

我想说 我是男的
作者: 王涵    时间: 2013-9-27 16:21
写了问题 居然没出来 。。。。。
作者: 肖亚光    时间: 2013-9-27 16:23
楼主突然又变成男的了...............................................{:soso_e127:}
作者: 王涵    时间: 2013-9-27 16:26
杨增坤 发表于 2013-9-27 14:58
请把您要问题的问题贴出来啊

写了问题 但没有显示出来 不知为什么

作者: 王涵    时间: 2013-9-27 16:27
肖亚光 发表于 2013-9-27 16:23
楼主突然又变成男的了...............................................

因为妹纸都不靠谱





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2