JAVA中關於主方法呼叫非靜態方法的問題

2021-07-05 15:20:27 字數 461 閱讀 4183

1、已知**如下:

public class test

}

請問哪個語句是正確的( )。

a.輸出為null

b.輸出為0

c.編譯時出錯

d.執行時出錯

答:c

因為a的修飾符不是static,所以在main( )方法執行system.out.print(a[6])時,陣列a還沒有被初始化,也就導致了編譯出錯。

把a的修飾符改為靜態,列印的結果就是0,也可以把 long a=newlong[10] 寫在main方法裡就不需要靜態修飾符。

public class person

}正確的是?

a 編譯時將產生錯誤;

b 編譯時正確,執行時將產生錯誤;

c 輸出零;

d 輸出空。

答:c

靜態方法呼叫非靜態方法

靜態方法不能 直接 呼叫非靜態變數,非靜態方法可以引用靜態變數。靜態方法不屬於物件,是屬於類的,不需要例項化 而非靜態變數是屬於物件的,需要先例項化。在乙個類的靜態成員中去訪問其非靜態成員,因為類的靜態成員先於類的非靜態成員存在,訪問乙個記憶體中不存在的東西會出錯。相反,非靜態方法可以引用靜態變數。...

java靜態方法不能呼叫非靜態方法的原因

靜態方法是屬於類的,即靜態方法是隨著類的載入而載入的,在載入類時,程式就會為靜態方法分配記憶體,而非靜態方法是屬於物件的,物件是在類載入之後建立的,也就是說靜態方法先於物件存在,當你建立乙個物件時,程式為其在堆中分配記憶體,一般是通過this指標來指向該物件。靜態方法不依賴於物件的呼叫,它是通過 類...

關於靜態方法和非靜態方法之間的呼叫

1 如果在非靜態方法裡呼叫非靜態方法,則可以用this呼叫。如 this.hao string args 也可以省略this,直接呼叫hao string args 2 如果在靜態方法裡呼叫靜態方法,則可以直接使用 類名.方法名 呼叫。如 若被呼叫的靜態方法m1在類hao1裡,則呼叫方法是 1 靜態...