-
所属关系:静态成员属于类本身,而实例成员属于类的实例(对象)。
-
内存分配:静态成员在内存中只有一份拷贝,而实例成员在每个对象实例化时都会有一份独立的拷贝。
-
访问方式:静态成员可以直接通过类名访问,无需创建类的实例,而实例成员需要通过类的实例才能访问。
-
生命周期:静态成员的生命周期和类的生命周期一致,即使没有类的实例存在,静态成员也可以被访问和操作。而实例成员的生命周期与对象实例相关,在对象实例被销毁时也会被销毁。
-
访问限制:静态成员可以访问类内的其他静态成员(包括静态变量和静态方法),以及类外的其他静态成员(通过类名访问)。实例成员可以访问类内的静态成员和实例成员。
public class MyClass { static int staticVariable; // 静态成员变量 int instanceVariable; // 实例成员变量 static void staticMethod() { // 静态方法 // 静态方法可以访问静态成员(包括静态变量和静态方法) staticVariable = 10; staticMethod(); } void instanceMethod() { // 实例方法 // 实例方法可以访问静态成员和实例成员 staticVariable = 20; instanceVariable = 30; staticMethod(); instanceMethod(); } public static void main(String[] args) { // 静态方法可以直接通过类名访问静态成员 MyClass.staticVariable = 40; MyClass.staticMethod(); // 实例方法和实例变量需要通过对象实例访问 MyClass obj = new MyClass(); obj.instanceVariable = 50; obj.instanceMethod(); } }