作用域
大约 2 分钟
作用域
基本使用
- 在java编程中,主要的变量就是属性(成员变量)和局部变量
- 我们说的局部变量一般是指在成员方法中定义的变量。[举例 Cat类: cry]
- java中作用域的分类
- 全局变量: 也就是属性,作用域为整个类体 Cat类: cry eat 等方法使用属性
- 局部变量: 也就是除了属性之外的其他变量,作用域为定义它的代码块中!
- 全局变量可以不赋值,直接使用,因为有默认值,局部变量必须赋值后,才能使 用,因为没有默认值。
演示
class Cat {
/**
* 全局变量:也就是属性,作用域为整个类体 Cat类 :cry eat 等方法使用属性
*/
int age = 20;
public void cry {
/**
* 1.局部变量一般是指在成员方法中定义的变量
* 2.n 和 name 就是局部变量
* 3.n 和 name 的作用域在 cry 方法中
*/
int n = 10;
String name = 'jack';
System.out.println("输出全局变量" + age);
}
public void eat {
System.out.println("输出全局变量" + age);
}
}
作用注意事项和细节
- 属性和局部变量可以重名,访问时遵循就近原则。
class Cat { int age = 20; public void cry { int age = 10; System.out.println(age); } }
- 在同一个作用域中,比如在同一个成员方法中,两个局部变量,不能重名
- 属性生命周期较长,伴随着对象的创建而创建,伴随着对象的死亡而死亡。局部变量,生命周期较短,伴随着它的代码块的执行而创建,伴随着代码块的结束而死亡,即在一次方法调用过程中。
- 作用域范围不同
- 全局变量/属性: 可以被本类使用,或其他类使用(通过对象调用)
- 局部变量: 只能在本类中对应的方法中使用
class test { public void cry { Person p1 = new Person(); System.out.println(p1.age); } } class Person { int age = 20; }
- 修饰符不同
- 全局变量/属性: 可以加修饰符
- 局部变量: 不可以加修饰符