靜態方法與非靜態方法的區別


靜態方法:

外部調用靜態方法時,可以直接通過【類名.靜態方法名】的方式調用,也可以通過創建類的對象來調用。

非靜態方法:

非靜態方法的調用只能通過【對象.非靜態方法名】的方式調用。

例:

現分別有一個靜態方法method1、非靜態方法method2

    public static void method1(){

      System.out.println("這是靜態滴...");

    }

    public void method2(){

      System.out.println("這是非靜態滴...");

    }

在調用時:

method2---------【step1: ClassName class1 = new ClassName();

        step2:  class1.method2;        】

method1 --------ClassName.method1(或者同上方法)

 

**

靜態方法只能訪問靜態成員,實例方法可以訪問靜態和實例成員。之所以不允許靜態方法訪問實例成員變量,是因為實例成員變量是屬於某個對象的,而靜態方法在執行時,並不一定存在對象。

同樣,因為實例方法可以訪問實例成員變量,如果允許靜態方法調用實例方法,將間接地允許它使用實例成員變量,所以它也不能調用實例方法。

基於同樣的道理,靜態方法中也不能使用關鍵字this。

main()方法是一個典型的靜態方法,它同樣遵循一般靜態方法的規則,所以它可以由系統在創建對象之前就調用。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM