[英]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.