在理解类的属性的同时, 还需要回顾第 3 章节学习的一个概念: 变量. 其实简单地理
解起来, 变量就是用来代表内存中的某块区域的, 这块内存区域中的值可以在程序的执行过程中发生变化.
变量根据它定义的位置, 分为成员变量和局部变量. 直接定义在类的主体中的变量叫
成员变量, 定义在方法的主体中的变量叫局部变量. 上面介绍的类的属性其实就叫成员变
量, 它们只是两种不同的称谓而已
Java 变量在使用前必须先声明和初始化(赋初值), 特别是局部变量, 如果没有被显式初
始化并赋值, 那么它的值是不可预见的, 程序中使用这个变量时, 就可能会出现异常情况
定义局部变量的语法格式为:
数据类型 变量名 = 值
例如, 下面的代码编译时发生了异常:
- public class test5 {
- public void Amthod(){
- int i;
- int j=i+5;//i 还未被初始化就使用了
- double d=3.14;
- System.out.println("你好");
- }
变量是有作用域的. 所谓变量的作用域, 是指定变量使用的范围, 也就是活动范围
变量作用域与现实生活中的实例可以类比: 鱼要在水中游, 鸟要在天空中飞, 每个事物都有它的作用范围, 在 Java 编程中, 一般通过大括号{} 来表示变量的作用范围
例 54] CompanyJJa
变量作用域
的代码如下:
- public class test5 {
- // 公司总经理命令
- String managerSay="我命令全体员工休假两天";
- // 执行总经理的命令
- public void say() {
- System.out.println("总经理发言"+managerSay);
- }
- // 执行湖北地区经理命令
- public void huBeiManagersay(){
- String managerSay1="我命令湖北地区全体员工休假两天";
- System.out.println("湖北地方区经理发言"+managerSay1);
- }
- // 执行湖南地区经理命令
- public void huNanagersay(){
- String managersay2="我命令湖南地区全体员工休假两天";
- System.out.println("总经理发言"+managersay2);
- // 编译出错
- System.out.println("湖北地方区经理发言"+managersay1);
- System.out.println("湖南地方区经理发言"+managersay2);
- }
在这个例子中, 成员变量 managerSay 可以在方法 huBeiManagersay 范围内使用, 也可
以在 huNanManagersay 范围内使用. 但湖北某个分公司经理的权利只能在湖北地区得到到实施, 在其他地区的公司得不到执行.
编译运行上例结果, 出现了错误, 如下所示:
image.PNG
变量声明的位置决定变量作用域, 变量作用域确定了可以在程序中用变量名来访问该
值的区域.
Company 类的示意如图 5.13 所示
image.PNG
变量 1 可以在方法 1, 方法 2 中使用
也可以在方法 1 和方法 2 的外
使用, 只要在类的主体 (也就是类的大括号{}) 中都可以使用. 但变量 2 只能在方法 1 中使用
变量 3 只能在方法 2 中使用, 超出这样的范围就不能使用了.
来源: http://www.jianshu.com/p/88b817d78c4c