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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

laugh

  • 黑马币:

  • 帖子:

  • 精华:

ooEye 发表于 2014-9-15 23:17
变量名是唯一的,对于int x = 3; x = x+2;表示取出x的值3,加上2,然后将结果再存到x。你可以认为x是一个存 ...

好吧, 能说你的头像比回答更好么
回复 使用道具 举报
黑马币。。
回复 使用道具 举报
没有搞懂楼主说的“在变量自动和强制类型转换中,同一个字母x,表达的意思不一样”这句话的意思;x=x+3是把x的值加上3之后再赋值给x,这时x的值是6.   x=x+y的值同样是把x和y的值进行加法运算后赋值给x。
回复 使用道具 举报
x=x+y   表示先把x+y 的值进行相加,然后把相加后的值赋给 x
回复 使用道具 举报
本帖最后由 xizhiqiang 于 2014-9-23 23:17 编辑

在这种情况下,取值取得都是等号右边的值,变量自动转换是低位向高位转换,例如你定义的long类型,但是你赋值是int类型的,则会转换为long类型的即系统会自动类型转换;把高位赋值给低位的时候必须要强制类型转换,
回复 使用道具 举报
x=x+y,java若取的话肯定会取左边的x,
回复 使用道具 举报
不可以,它会报找不到符号因为你没有定义y,如果定义了y就可以这样写。int    x=3,意思是将3赋值给x,同理:x=x+3,意思就是将x+y的值重新赋值给x。你说的这种情况x最后得取值是你最后给x赋的值
如果定义了多个int x;看你定义在局部还是成员位置在JAVA中存在着访问顺序的,先访问局部变量在访问成员变量,在访问父类的成员变量一直找到object。
回复 使用道具 举报

RE: 关于最基础的java变量中的自动和强制类型提升中一些问题

)类型转换
                A:boolean类型不参与转换。
                B:隐式转换(从小到大)
                        byte,short,char -- int -- long -- float -- double
                C:强制转换(从大到小)
                        格式:
                                (数据类型)数据;
回复 使用道具 举报
char,short,byte三者之间做运算会自动提升成int类型;强制转换就是将一种类型强制转换成另一种类型除隐士转换外,格式(byte)int,隐士转换会损失精度
回复 使用道具 举报
肖建伟 来自手机 中级黑马 2014-10-5 10:27:27
30#
看到大家回复都比较详细了!总之,记住等号左边是赋完值的结果。
回复 使用道具 举报
=是赋值运算  就是  右边的表达式 运算出来的结果 赋值给=左边的变量  
==是等于的意思  就是两边进行比较
回复 使用道具 举报
12
您需要登录后才可以回帖 登录 | 加入黑马