作用域:scope
在java中讨论作用域,先了解变量分两类:一是,属性(成员变量);二是,局部变量。
- 全局变量(属性):作用域为整个类;
- 局部变量:作用域为定义它的代码块中。
细节:属性可以不赋值,直接使用,有默认值,局部变量必须赋值后,才能使用,没有默认值。
class T {
String name; //属性(成员变量),有默认值
{
double price;
}
public void cry() {
int age = 10; //局部变量,必须初始化
System.out.println("age = " + age);
System.out.println("name = " + name);
}
public void eat() {
System.out.println("name = " + name);
// System.out.println("cry()方法中的局部变量age = " + age); //不可以
// System.out.println("代码块中的局部变量price = " + price);//不可以
}
2- 作用域_细节
(1). 属性和局部变量可以重名,访问时遵守就近原则;
(2). 在同一个作用域中,比如在同一个成员方法中,两个局部变量,不能重名;
(3).生命周期:
- 属性生命周期较长,随对象的创建而创建,随对象的销毁而销毁;
- 局部变量,生命周期较短,随着它的代码块的执行而创建,随着代码块的结束而销毁,即在一次方法调用过程中。
- 全局变量:可以被本类使用,或其它类使用(通过对象调用);
- 局部变量:只能在本类中对应的代码块或方法中使用。
- 全局变量/属性可以加修饰符;
- 局部变量不能加修饰符。



