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)可以调用非静态成员方法