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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

べ戀¢豬そ☆

初级黑马

  • 黑马币:21

  • 帖子:36

  • 精华:0

© べ戀¢豬そ☆ 初级黑马   /  2012-7-21 10:44  /  1918 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在java中,不用第三方变量,对两个整数的值进行转换,为什么不可以直接System.out.println("n="+m+",m="+n);呢?我试过,得出的结果就是将n和m的数值转换了。只是数值的转换,不是地址的转换,况且在这里也没有用到第三方变量的。

评分

参与人数 1黑马币 +30 收起 理由
蒋映辉 + 30 好吧,鼓励一下新同学...

查看全部评分

10 个回复

倒序浏览
本帖最后由 包晗 于 2012-7-21 10:55 编辑

- -  
这样打也行
但是 代码要有可读性
如果别人写的代码.
你看了半天会摸不着头脑的

编写代码的时 ,起名字要形象一点  
比如获取名字写
getName
设置某某 用
set

this.name=name
等等
接触多了 会形成一定的模式
回复 使用道具 举报
你这是…………自欺欺人嘛

拿着m 非说是 n  ,这不是交换:(
回复 使用道具 举报
你的理解很传统,在输出语句确实可以这样输出,但是如果是在做循环呢?
回复 使用道具 举报
...m 和 n的值都没变啊
回复 使用道具 举报
不用第三方变量对两个整数的值进行互换:
第一种方式:
              a=a+b;
              b=a-b;
              a=a-b;
第二种方式:
              a=a^b;
              b=a^b;
              a=a^b;
你这种做法,显示上没问题,但是实际上两个数的数值并没有变。

评分

参与人数 1技术分 +1 收起 理由
韦念欣 + 1 赞一个!

查看全部评分

回复 使用道具 举报
柳雷 中级黑马 2012-7-21 11:33:50
7#
这只是显示没问题,具体的数值没有变,这么做没有什么意义。
回复 使用道具 举报
李菁 中级黑马 2012-7-21 11:48:44
8#
你这样进行转换只是值传递,只改变值,而没有进行引用传递,所以内存地址没有改变
回复 使用道具 举报
System.out.println("n="+m+",m="+n);这样写是有问题的.这里m,n的值根本没有改变."n="这只是个字符串,你将一个数值付给了一个字符串打印出来的是数值的字符串表现形式.
如果我这样写System.out.println("a="+m+",b="+n);你能理解吗..双引号里面的字符串只是你人为的定义成了变量名,这样是不行的.
回复 使用道具 举报
你这是打印给人看的。  真正项目中能这么干嘛
回复 使用道具 举报
你这个显示是字符串,并不是什么具体的值,没有意义的,因为你人为的将具体的变量值与字符串按照某组排序重新组成字符串在计算机屏幕上打印出来,这只是一种你人为的字符排序。计算机内存中的m与n的实际值并没有因为你的打印而互换了。至于地址更不可能呼唤,因为你只知道m与n的值,并不知道m,n的地址在哪里。怎么可能互换呢?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马