成员变量和局部变量
成员变量
- 属于类
- 可以被
public
、private
、static
等修饰符修饰- 使用
static
修饰的成员变量是属于类的- 未使用
static
修饰的成员变量是属于类的实例的- 成员变量是对象的一部分,随着对象的创建而存在,
- 成员变量没有被赋予初始值,则会自动以类型的默认值赋值
- 被
final
修饰的成员变量必须显式赋值。局部变量
- 定义在代码块、方法的参数或方法中的变量
- 由于对象存在堆中,所以局部变量存在栈内存中
- 局部变量随着方法的调用而自动生成,随着方法的调用结束而消亡
- 局部变量不对自动赋值。
示例
public class VariableExample {
// 成员变量
private String name;
private int age;
// 方法中的局部变量
public void method() {
int num1 = 10; // 栈中分配的局部变量
String str = "Hello, world!"; // 栈中分配的局部变量
System.out.println(num1);
System.out.println(str);
}
// 带参数的方法中的局部变量
public void method2(int num2) {
int sum = num2 + 10; // 栈中分配的局部变量
System.out.println(sum);
}
// 构造方法中的局部变量
public VariableExample(String name, int age) {
this.name = name; // 对成员变量进行赋值
this.age = age; // 对成员变量进行赋值
int num3 = 20; // 栈中分配的局部变量
String str2 = "Hello, " + this.name + "!"; // 栈中分配的局部变量
System.out.println(num3);
System.out.println(str2);
}
}