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

区别                                                             成员变量                                                                                    局部变量

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

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

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

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

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

代码举例:

二:赋值运算符

(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);

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部