Java SE之[静态成员/类成员]与[非静态成员/实例成员]【static】

定义

  静态成员:又称类成员,使用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;
    }

}

参考文献

  暂无

原文地址:https://www.cnblogs.com/johnnyzen/p/10520650.html