![剑指Java:核心原理与应用实践](https://wfqqreader-1252317822.image.myqcloud.com/cover/443/47500443/b_47500443.jpg)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
第3章 基础语法
3.3.2 变量的注意事项
1.必须先声明再使用
错误示例代码。
声明在使用之后:
![](https://epubservercos.yuewen.com/BBFB00/26895744002143606/epubprivate/OEBPS/Images/txt003_16.jpg?sign=1739694710-DiSCAd4rFIyggU5jUVoLvvXfRf3gMIIq-0-a06b2f27877189fb20ed7949d58d68f6)
变量未声明的错误示例如图3-5所示。
![](https://epubservercos.yuewen.com/BBFB00/26895744002143606/epubprivate/OEBPS/Images/txt003_17.jpg?sign=1739694710-kIWgfaTtAL2mAkND0caLeEAOke6bDK2J-0-1d907793dcc0c2caeba1c23a49911c65)
图3-5 变量未声明的错误示例
2.变量必须在初始化后才能使用
错误示例代码。
使用之前没有初始化:
![](https://epubservercos.yuewen.com/BBFB00/26895744002143606/epubprivate/OEBPS/Images/txt003_18.jpg?sign=1739694710-J6FMdzizvseVvfcWrVUkR2P0D1DVuAhL-0-adff36ba6f2d22076fea6e0cee6a5ec2)
变量未初始化的错误示例如图3-6所示。
![](https://epubservercos.yuewen.com/BBFB00/26895744002143606/epubprivate/OEBPS/Images/txt003_19.jpg?sign=1739694710-KN7qAGrnuMUYLeY9XT1Vx1Kygfv1Om5s-0-ef98c9ee5d57fdb156a1806e0bbea7ba)
图3-6 变量未初始化的错误示例
3.变量有作用域,并且在同一个作用域中不可以重复命名
错误示例代码。
同一个作用域中的num变量声明两次:
![](https://epubservercos.yuewen.com/BBFB00/26895744002143606/epubprivate/OEBPS/Images/txt003_20.jpg?sign=1739694710-aghvJ5P29GddgF4ZKHs09ZNlybsjxSwV-0-9a98ac6cc740486fd92f010c4d6d2fb2)
变量重名的错误示例如图3-7所示。
![](https://epubservercos.yuewen.com/BBFB00/26895744002143606/epubprivate/OEBPS/Images/txt003_21.jpg?sign=1739694710-BJskGlVEoi6KOwbHDVtCKadk2qIZHFrx-0-4c317c6aae098f673e43b39d78cf6aad)
图3-7 变量重名的错误示例
第一个错误提示已经在方法main中定义了变量num。同一个作用域中变量是不可以重复命名的,如果变量重名,那么Java虚拟机就不能区分两个变量了。好比班级中有两个同名的学生,老师在叫学生名字时,可能两个学生同时起立,造成老师无法直接区分。
所谓作用域,是指大括号的范围,在某个大括号的复合语句中声明的变量,仅在当前大括号范围内使用。例如,上面的第二个错误提示,找不到符号num,就是因为超过了num定义的作用域范围。
4.变量的值可以变化,但必须在变量声明的数据类型范围内
错误示例代码。
num变量是int整数类型,却被赋值为1.5的double小数类型:
![](https://epubservercos.yuewen.com/BBFB00/26895744002143606/epubprivate/OEBPS/Images/txt003_22.jpg?sign=1739694710-IKK9d02FL3kNXIx87abRNsAoF5P2wg6L-0-edc4096aee5b237d1e493ab816e40da0)
变量赋值不在数据类型范围内的错误示例如图3-8所示。
![](https://epubservercos.yuewen.com/BBFB00/26895744002143606/epubprivate/OEBPS/Images/txt003_23.jpg?sign=1739694710-tfiLqqcWbtOyenVoCQXDWAnKQ93LQko5-0-fdf0186a2596c6fa5cc90c43037bc7fe)
图3-8 变量赋值不在数据类型范围内的错误示例