![剑指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=1738810167-J1lDRs1kx9LHogd1frFDIg1m9Abu5qZ5-0-7491e6ad1c992d7e6ce13530238494df)
变量未声明的错误示例如图3-5所示。
![](https://epubservercos.yuewen.com/BBFB00/26895744002143606/epubprivate/OEBPS/Images/txt003_17.jpg?sign=1738810167-Eb3XCaalMGVid7BJ3jiQljFGqdAYdc5Y-0-5a1e355a9fa1114f5a4fae431139f9b2)
图3-5 变量未声明的错误示例
2.变量必须在初始化后才能使用
错误示例代码。
使用之前没有初始化:
![](https://epubservercos.yuewen.com/BBFB00/26895744002143606/epubprivate/OEBPS/Images/txt003_18.jpg?sign=1738810167-6luBMnpV1nJViUlMn06Z4BldeQ5g7BaG-0-fd616dfd57da9b01bf68a31e4b3eb018)
变量未初始化的错误示例如图3-6所示。
![](https://epubservercos.yuewen.com/BBFB00/26895744002143606/epubprivate/OEBPS/Images/txt003_19.jpg?sign=1738810167-WTj0D0FRbV0hFuVAT3Ga9WFFOamAEsA9-0-24283a5807458de5edbb43dd4c264d47)
图3-6 变量未初始化的错误示例
3.变量有作用域,并且在同一个作用域中不可以重复命名
错误示例代码。
同一个作用域中的num变量声明两次:
![](https://epubservercos.yuewen.com/BBFB00/26895744002143606/epubprivate/OEBPS/Images/txt003_20.jpg?sign=1738810167-ZPY8TyzhIsPz7etO44YrrINc0CXcHcTz-0-45be633e0046f4abdd4c2425fe01731c)
变量重名的错误示例如图3-7所示。
![](https://epubservercos.yuewen.com/BBFB00/26895744002143606/epubprivate/OEBPS/Images/txt003_21.jpg?sign=1738810167-AjTikOzJa3bTEDTpdIEml86fWXNmIVCu-0-6dee63ba675e27da49286b690a5d1f6e)
图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=1738810167-ZHSQMIGC3VbfIOW2xcvjlK5hudYLZ4Id-0-d091afc77e3d3939c3157444c345c572)
变量赋值不在数据类型范围内的错误示例如图3-8所示。
![](https://epubservercos.yuewen.com/BBFB00/26895744002143606/epubprivate/OEBPS/Images/txt003_23.jpg?sign=1738810167-wqzUvT8ns10xInD8CF6KiZAuKn41IIEa-0-c9b33576ee5ab47d13a1a01c41de570e)
图3-8 变量赋值不在数据类型范围内的错误示例