一:成员变量与局部变量的区别
区别 成员变量 局部变量
类中位置不同 类中,方法外 常见于方法中
初始值不同 有默认值,不需要初始化赋值 没有默认值,使用之前必须完成赋值
内存位置不同 堆内存 栈内存
作用域不同 整个对象 在所归属的大括号中
生命周期 与对象共存亡 随着方法的调用而生,随着方法的运行结束而亡
代码举例:
二:赋值运算符
(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);