定义
静态成员:又称类成员,使用static修饰符的方法和变量;
非静态成员:又称实例成员,未使用static修饰符的方法和变量。
结论
注:jdk1.8
测试源码
public class Main { private int x = 34; // 非静态变量 private static int a = 1; // 静态变量 private static int b = a; //[√] 静态变量调用静态变量 private static int c = getA(); //[√] 静态变量调用静态方法 // private static int d = x; //[X] 静态变量调用非静态变量 // private static int e = getB(); //[X] 静态变量调用非静态方法 private int y = a; //[√] 非静态变量调用静态变量 private int m = getA(); //[√] 非静态变量调用静态方法 private int p = x; //[√] 非静态变量调用非静态变量 private int n = getB(); //[√] 非静态变量调用非静态方法 public static int getA(){ int result = a; //[√] 静态方法调用静态变量 result = getStaticA(); //[√] 静态方法调用静态方法 // result = x; //[X] 静态方法调用非静态变量 // result = getB(); //[X] 静态方法调用非静态方法 return result; } public static int getStaticA(){//静态方法 return a; } public int getB(){ int result = 2; result = a; //[√] 非静态方法调用静态变量 result = getA(); //[√] 非静态方法调用静态方法 result = x; //[√] 非静态变量调用非静态变量 result = getUnStaticB(); //[√] 非静态变量调用非静态方法 return result; } public int getUnStaticB(){ //非静态方法 return x; } }
参考文献
暂无