半斤八两(一个有趣的java题)

文章作者 100test 发表时间 2007:03:10 18:31:03
来源 100Test.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里面没有这个重载,所以报错了。
*******/

相关文章


VB中感叹号“!”与圆点“.”的用法差异
(空字串)、Null、Empty、与Nothing的区别
从一道测试题分析java中的方法重载(overload)
半斤八两(一个有趣的java题)
[二级VB]什么是32位?
全国计算机级辅导:VB中日期的处理
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛