在java中,如果方法,静态变量和类的变量被多次实例化为实例化类。
例如:
class Person {
private String name;
public static int age;
public void getName() {
return name;
}
public static void getAge() {
return age;
}
}
当实例类"Persion"3次时:
Persion p1 = new persion();
Persion p2 = new persion();
Persion p3 = new persion();
如果变量 "name"、"age" 和函数 "getName((","getAge" 实例化 3 次?
变量"name"、"age"和函数"getName(("、"getAge(("是否实例化了 3 次?
-
name
不是static
,因此它被实例化了三次。 -
age
是static
的,因此它不是实例化三次。 -
对于每个对象,
getName()
也是分开的 -
getAge()
是static
的,因此对所有对象都一样
static
基本上意味着它在该类的所有对象中都是相同的。
静态变量只定义一次 - static
关键字表示它不属于对象,而是属于类。
变量 name
不是static
,因此将在创建对象时对其进行初始化。
因此,如果您创建三个Person
对象,您将有 3 个name
变量(对于每个Person
对象,只有一个age
静态变量。
java中static
变量只能获取一个内存地址,即使创建了许多Persion的副本,也只能使用该方法static
获取一次相同的内存地址,即使创建了许多Persion的副本,也只存储了一个内存