类中的变量作用域:
一、成员变量
概念:
在一个类中,方法之外定义的变量称为成员变量
性质:
1.变量作用域为整个类,类中的方法可以直接调用这个变量
2.java会给成员变量赋一个初始值
例:
public class Class3 {
int a;// 定义一个成员变量
void b() {
System.out.println("我引用了成员变量a:" + a);// 方法可以直接引用成员变量
}
public static void main(String[] args) {
Class3 text = new Class3();// 创建对象
text.b();// 调用类中的方法b();
System.out.println("输出成员变量a:" + text.a);// 成员变量可以被Main函数调用
}
}
运行结果:
我引用了成员变量a:0
输出成员变量a:0
二、局部变量
概念:
在类的方法中定义的变量称为局部变量
性质:
1.局部变量的作用域仅限于定义它方法
2.局部变量不会自动赋初始值
3.同一个类中的变量名不能同名,不同类中的变量名可以相同。因为局部变量的作用域仅限于定义它的类中,所以互不干扰。
4.当局部变量和成员变量同名时,局部变量具有更高的优先级
例:
public class Class4 {
int n = 2;
void a() {
int a1 = 0;// 定义局部变量b并赋初始值
System.out.println("方法a引用局部变量a1:" + a1);
}
void b() {
int a1 = 1;// 定义局部变量a1,变量的名字和a方法中的局部变量相同。
System.out.println("方法b引用局部变量a1:" + a1);
}
void c() {
int n = 3;// 局部变量名与成员变量名相同,优先局部变量
System.out.println("方法c引用局部变量n:" + n);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Class4 text = new Class4();
text.a();// 调用a方法
text.b();
text.c();
}
}
运行结果:
方法a引用局部变量a1:0
方法b引用局部变量a1:1
方法c引用局部变量n:3