📅  最后修改于: 2023-12-03 14:58:43.736000             🧑  作者: Mango
在面向对象编程中,类是一个通过实例化创建的对象模板,而实例变量和静态变量是类的两种基本属性,它们的作用和使用方法也各不相同。
实例变量是定义在类中方法外的变量,它属于对象级别的,也就是说每个类的实例都会有一份属于自己的实例变量。实例变量的特点是在对象创建时被初始化,并且只能通过对象来访问和修改。例如:
public class Person {
private String name; // 实例变量
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
// 创建对象
Person person = new Person();
person.setName("张三");
System.out.println(person.getName()); // 输出:张三
以上代码中,name
是 Person
类的实例变量,而在实例化后通过 person.setName("张三")
方法给属性赋值,最后通过 person.getName()
方法获取属性值。
静态变量是定义在类中方法外的变量,它属于类级别的,也就是说不管创建多少个该类的实例,静态变量只有一份。静态变量的特点是在类加载时被初始化,并且可以通过类名来访问和修改。例如:
public class Person {
private static String country = "China"; // 静态变量
public static String getCountry() {
return country;
}
public static void setCountry(String country) {
Person.country = country;
}
}
// 访问静态变量
System.out.println(Person.getCountry()); // 输出:China
// 修改静态变量
Person.setCountry("USA");
System.out.println(Person.getCountry()); // 输出:USA
以上代码中,country
是 Person
类的静态变量,通过 Person.getCountry()
和 Person.setCountry("USA")
方法访问和修改静态变量的值。需要注意的是,在被多个实例共享的情况下,修改了静态变量的值可能会影响其他实例的访问结果。
super
关键字访问父类的实例变量,而静态变量不能被继承。