簡體   English   中英

Java中的靜態方法可以調用非靜態方法

[英]Static method in java can call non static method

有人說在Java中我們不能從靜態方法中調用非靜態方法。這到底意味着什么?我們總是可以使用對象調用非靜態方法frm static。

這是一個很好的代碼段,以說明其含義:

class MyClass{

    static void func1(){
        func2(); //This will be an error
    }

    void func2(){
        System.out.println("Hello World!");
    }

}

要調用非靜態方法,您需要一個實例(對象)-因為這些方法屬於實例,並且通常僅在實例的上下文中才有意義。

靜態方法不屬於實例-它們屬於類。 因此,無需先創建實例,只需調用MyClass.doSomething()

void foo(){
  MyClass.doSomething();
}

但是,只要您首先創建一個實例,就可以從靜態方法中調用非靜態方法。

static void bar(){
  MyObject o = new MyObject();
  o.doSomething();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM