半斤八两(一个有趣的java题) |
|
www.nanhushi.com 佚名 不详 |
1.半斤 本题目需要写点代码哦,好消息是,你只需为这个谜题编写两行代码,并为下一个谜题也编写两行代码。这有什么难的呢?问题是怎样给出一个对变量x和i的声明,使得下面这条语句合法: x += i; 但是,下面这条语句不合法: x = x + i; 2.八两 与上面的例子相反,如何声明变量x和i,使如下的语句合法: x = x + i; 但是,下面这条语句不合法: x += i; /*********************** 思考 ***********************/ 我的答案是: 1。short x=1, i=1; /****** 解释: x=x+i;可以看成3个过程,x与i相加,然后强制转换成int,然后再试图赋给short,报错。 因为short加运算之后都会强制转换成int,包括byte相加也是这样。 x+=i;中间就没有转换成int的过程了。 *******/ 2。Object x=new Object(); String i=""; /****** 解释: x=x+i;这个可以等价看成x=i+x;,我们知道在java里面唯一重载运算符的是String的+运算,所以这里就是这个运算,结果得到一个新的String对象试图赋给Object,OK。 x+=i;如果是C++里面,我们可以认为这里是调用Object类的+operator函数,可惜java里面没有这个重载,所以报错了。 *******/
|
|
|
文章录入:杜斌 责任编辑:杜斌 |
|
上一篇文章: 2006新版JAVA题解(JAVA简单数据类型) 下一篇文章: 从一道测试题分析java中的方法重载(overload) |
【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |
|
|