一、变量作用域
Java 中的变量有3种:
📖 ① 全局变量:被定义在类中(成员变量)
📖 ② 局部变量:被定义在成员方法、代码块、静态代码块中定义的变量
📖 ③ 参数:方法声明中的变量
There are several kinds of variables(变量):
📋 Member variables(成员变量) in a class:these are called fields(属性)
📋 Variables in a method or block of code(代码块):these are called local variables(局部变量)
📋 Variables in method declarations(方法声明):these are called parameters(参数)
✏️ 全局变量(成员变量)作用域为:整个类体
✏️ 局部变量(除全局变量之外的变量)作用域为:它所在的代码块
✏️ 全局变量可以不赋值,直接使用(全局变量有默认值)
✏️ 局部变量必须赋值后才能使用
✏️ 参数的值在方法被调用的时候才有
public class VariableDomain {
// 全局变量
private String name;
{
int age = 10; // 局部变量
}
static {
double pai = 3.14; // 局部变量
}
// num1、description 参数
public void test(int num1, String description) {
String hobby = "睡觉"; // 局部变量
}
}
📜 全局变量名和局部变量名可以一样,访问的时候遵循就近原则
📜 在同一作用域中(eg:同一成员方法中),不能有重名的局部变量
📜 同一类的同一代码块中的成员变量也不能重名
全局变量和局部变量重名的时候,访问遵循就近原则:
public class VariableDomain {
// 全局变量
private String name = "张浩男";
public static void main(String[] args) {
VariableDomain domain = new VariableDomain();
domain.test();
}
private void test() {
String name = "莫松"; // 局部变量(可以和全局变量重名)
// output: name = 莫松
System.out.println("name = " + name);
}
}
不同类的成员变量可以重名: