java中的static关键字

static有以下几个特点:

1.被所有对象所共享

Students.class

public class Students {
    private String name;
    static String graduateFrom;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void show(){
        System.out.println(name+"----"+graduateFrom);
    }
}

StudentsDemo.class

public class StudentsDemo {
    public static void main(String[] args){
        Students s1 = new Students();
        Students s2 = new Students();
        s1.setName("小明");
        s1.graduateFrom = "清华大学";
        s2.setName("小红");
        s1.show();
        s2.show();
    }
}

2.可以使用类名调用

public class StudentsDemo {
    public static void main(String[] args){
        System.out.println(Students.graduateFrom);
    }
}

3.静态的加载优先于对象,随着类的加载而加载的。

所以有以下几个特点:

静态方法:

(1)可以调用静态的成员变量

(2)可以调用静态的成员方法

(3)不可以调用非静态成员变量

(4)不可以调用非静态成员方法

(5)静态方法不可定义this,super关键字

非静态方法:

(1)可以调用静态的成员变量

(2)可以调用静态的成员方法

(3)可以调用非静态成员变量

(4)可以调用非静态成员方法

原文地址:https://www.cnblogs.com/chichung/p/10208721.html