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


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();报错
}
}


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM