静态方法和非静态方法调用详解

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();报错
}
}
posted @ 2022-04-06 08:44  花田007  阅读(2059)  评论(0编辑  收藏  举报