A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王涵 中级黑马   /  2013-9-27 14:41  /  1647 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  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 16:04

9 个回复

倒序浏览
请把您要问题的问题贴出来啊
回复 使用道具 举报
美女 虽然  你没有问什么  但我 跟你说 此程序运行的结果是:233    加油偶   。。。版主 和 老师都在看着你的努力 。。。。。你是最棒的
回复 使用道具 举报
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.

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报
Thunder_-_Li 发表于 2013-9-27 15:05
美女 虽然  你没有问什么  但我 跟你说 此程序运行的结果是:233    加油偶   。。。版主 和 老师都在看着 ...

我想说 我是男的
回复 使用道具 举报
写了问题 居然没出来 。。。。。
回复 使用道具 举报
楼主突然又变成男的了...............................................{:soso_e127:}
回复 使用道具 举报
王涵 中级黑马 2013-9-27 16:26:15
8#
杨增坤 发表于 2013-9-27 14:58
请把您要问题的问题贴出来啊

写了问题 但没有显示出来 不知为什么
回复 使用道具 举报
王涵 中级黑马 2013-9-27 16:27:17
9#
肖亚光 发表于 2013-9-27 16:23
楼主突然又变成男的了...............................................

因为妹纸都不靠谱
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马