java —— static 关键字

static 用法

声明静态成员变量(也称类变量),从属于类,是该类的公用变量,生命周期与类相同,**注意与普通成员变量区分 ** 普通成员变量从属于对象,生命周期与对象相同。

注意!!!

static 方法不可访问非static 成员,非static成员从属于对象,在堆内存中无法找到。

个人理解:static 变量声明初始化以后,创建的对象全都是被初始化过的,相当于这个类特有的“印记”

撸代码:

/**
 * @author DREAM_yao
 *static关键字的用法
 */

/*static:声明静态成员变量和方法,从属于类
 * 
 * */


class Score{
    String name;/*从属于对象*/
    static String id="DREAM_yao";/*从属于类*/
    static int num;
    public void printname() {/*普通方法可以调用静态方法*/
        System.out.println("普通方法:"+id);
    }
    public static void printId(){/*静态方法不能调用普通方法,在内存中找不到*/
        System.out.println("静态方法:"+id);
    }
}
public class TestConstructor {
    public static void main(String[] args) {
        Score s2 = new Score();
        s2.printname();
        s2.printId();
        s2.id="快乐撸代码";
        System.out.println(s2.num);
        s2.printId();
    }
}

静态初始化块:

用于类的初始化

/**
 * @author DREAM_yao
 *静态初始化块
 */

/*static:声明静态成员变量和方法,从属于类
 * 
 * */

class Score{
    String name;/*从属于对象*/
    static String id;/*从属于类*/
    static int num;
    static {/*static 初始化块*/
        System.out.println("执行类的初始化:");
        id="DREAM_yao";
        num=666;
        System.out.println(num+" "+id);
    }
}
public class TestConstructor {
    public static void main(String[] args) {
        Score s2 = new Score();
    }
}
原文地址:https://www.cnblogs.com/HappyKnockOnCode/p/12660091.html