static
静态变量和静态方法是和类一起加载的,访问时可以直接通过类名点调用。
非静态方法可以调用静态方法,但是静态方法不能调用非静态方法。因为静态方法是和类一起加载的,非静态方法只有在实例化后才能调用,在静态方法中调用非静态方法就相当于调用一个不存在的方法,会编译报错。
public class Teacher {
private static int age;//静态变量随类一起加载;可直接通过类名点调用
private String name;
private void test() {
test1();//非静态方法可以调用静态方法
System.out.println("非静态方法test");
}
private static void test1() {//静态方法随类一起加载;可直接通过类名点调用
System.out.println("静态方法test1");
}
public static void main(String[] args) {
int age1 = Teacher.age;//可直接通过类名点调用
System.out.println("age1=" + age1);
Teacher.test1();//可直接通过类名点调用
Teacher teacher = new Teacher();
int age = teacher.age;
String name = teacher.name;
System.out.println("age="+age+",name="+name);
teacher.test();
teacher.test1();
}
}
运行结果:
age1=0
静态方法test1
age=0,name=null
静态方法test1
非静态方法test
静态方法test1