1、靜態方法不能直接調用非靜態
2、非靜態方法可以直接調用靜態方法
原因:
靜態方法和類一起加載,非靜態方法只有在創建對象時才會加載。所以才有了靜態方法不能直接調用非靜態(因為靜態方法加載時類還沒有初始化也就還沒有非靜態方法),非靜態方法可以直接調用靜態方法(因為非靜態方法加載時靜態方法早就加載了)。
public class Demo02 {
public void run(){
System.out.println("Running");
//非靜態方法可以直接調用靜態方法
sleep();
}
public static void sleep(){
System.out.println("sleep");
}
public static void main(String[] args) {
//靜態方法可以直接調用靜態方法,或者通過類名.方法名調用
sleep();
Demo02.sleep();
//run();報錯
}
}