【JAVASE】java语法(成员变量与局部变量的区别、赋值运算符中的易错点)

一:成员变量与局部变量的区别

区别                                                             成员变量                                                                                    局部变量

类中位置不同                                        类中,方法外                                                                              常见于方法中

初始值不同                                有默认值,不需要初始化赋值                                             没有默认值,使用之前必须完成赋值

内存位置不同                                      堆内存                                                                                            栈内存

作用域不同                                              整个对象                                                                            在所归属的大括号中

生命周期                                                与对象共存亡                                             随着方法的调用而生,随着方法的运行结束而亡

代码举例:

二:赋值运算符

(1)基本赋值运算符:就是“=”。看代码时,从右往左看。

例如: int  a = 10;先看“=”右边,把数据10赋值给左边的变量a存储。

(2)扩展赋值运算符

符号                                   用法                                          作用                                                                            底层代码形式

+=                                      a +=b                                          加后赋值                                                      a=(a的类型)(a+b)

-=                                        a-=b                                           减后复制                                                       a=(a的类型)(a-b)

*=                                      a*=b                                              乘后赋值                                                     a=(a的类型)(a*b)

/=                                      a/=b                                            除后赋值                                                        a=(a的类型)(a/b)

%=                                     a%=b                                     取余后赋值                                                          a=(a的类型)(a%b)

注意:扩展赋值运算符隐含了强制类型转换。

在c语言中,我们知道a+=b;等价于a=a+b;在c语言中这之间没有强制类型转换。

代码演示:

从这个代码中,我们知道,当char   short  byte 类型的变量做算数运算时,计算得到的结果是int类型。

所以上述代码a=a+b;“=”右边的类型是int类型,“=”左边是byte类型。把int类型的数据赋值给byte类型的变量不兼容。

而a+=b这行代码没有报错,那么我们知道确实是发生了强制类型转换:a=(a的类型)(a+b);

  • 16
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值