华为在我校的一个试题,没弄懂为什么!

zwlawrence 2006-03-31 10:41:35
public class Add {


public static void main(String[] args) {
short i;
i = i+1;  //报错

i+= 1; //正确

}

}

请哪位牛人帮忙解答一下啊
...全文
1754 97 打赏 收藏 转发到动态 举报
写回复
用AI写文章
97 条回复
切换为时间正序
请发表友善的回复…
发表回复
losedxyz 2006-04-10
  • 打赏
  • 举报
回复
不要把+=拆开看.这是一个运算符
grant999 2006-04-10
  • 打赏
  • 举报
回复
public class Add {


public static void main(String[] args) {
short i=0;
i+= 1; //正确

}

}
编译成class


G:\>javap -c Add
Compiled from "Add.java"
public class Add extends java.lang.Object{
public Add();
Code:
0: aload_0
1: invokespecial #1; //Method java/lang/Object."<init>":()V
4: return

public static void main(java.lang.String[]);
Code:
0: iconst_0
1: istore_1
2: iload_1
3: iconst_1
4: iadd
5: i2s//自动进行类型转换了
6: istore_1
7: return

}
要问为什么自动进行类型转换,只有请教JAVA之父了
qinqinxiatiao 2006-04-09
  • 打赏
  • 举报
回复
强帖留名

^_^
gudulyn 2006-04-09
  • 打赏
  • 举报
回复
Mark,搞不明白。
welfarefanwei 2006-04-09
  • 打赏
  • 举报
回复
Mark!
莲藕 2006-04-09
  • 打赏
  • 举报
回复
Mark!
benewu 2006-04-09
  • 打赏
  • 举报
回复
还在讨论这个题目啊
caoyun001 2006-04-08
  • 打赏
  • 举报
回复
i不是要赋初值么?
ewater66 2006-04-08
  • 打赏
  • 举报
回复
楼上的,不能这么写的
成员变量只有成员方法可以访问,除非你把它定义成static的。
Janyue 2006-04-08
  • 打赏
  • 举报
回复
public class Add {

short i;

public static void main(String[] args) {
// short i;
i = i+1; //报错 (还会抱错吗?)

i+= 1; //正确

}

}

请哪位牛人帮忙解答一下啊!

网络咖啡 2006-04-08
  • 打赏
  • 举报
回复
《Java编程思想》中把这样的语法现象叫做晋升
liud2003 2006-04-08
  • 打赏
  • 举报
回复
呵呵 我自己也调试了一下,学到不少东西 多谢各位牛人和楼主
比如:
short i=1;
short j=2;
i=i+j; //报错
i+=j; //正确
Dan1980 说的好
做鸡真好吃 2006-04-08
  • 打赏
  • 举报
回复
Mark~
widegoose_wy 2006-04-05
  • 打赏
  • 举报
回复
恩。有理有理。牛人果然不同凡响
pxboy 2006-04-05
  • 打赏
  • 举报
回复
所有数字型的自增溢出都不会报错的,比如 int i = 2147483647; i+=1;是不会报错的,而int i = 2147483648是会的错的。
pxboy 2006-04-05
  • 打赏
  • 举报
回复
i = i+1; //报错 在这里 i+1是个表达式 需要一个中间寄存器保存这个结果,这个寄存器是个int型的。

i+= 1; //正确 这里是自增,自增是话,只要在i自已这个寄存器里加1便是
chyx413332087 2006-04-05
  • 打赏
  • 举报
回复
有没有人改正一下,楼主的题目啊
renzhpl 2006-04-05
  • 打赏
  • 举报
回复
太厉害了,学习!学习……
henrypiao 2006-04-05
  • 打赏
  • 举报
回复
没注意过,基础重要啊
jsnjlc 2006-04-05
  • 打赏
  • 举报
回复
看过后对JAVA中的变量有了更深刻的认识。
加载更多回复(77)

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧