理解Java 中的「無法對非靜態欄位/方法進行靜態引用」
在Java 中,遇到錯誤「Cannot make對非靜態欄位的靜態參考」或「無法對非靜態方法進行靜態引用」表示由於程式碼中靜態和非靜態元素之間的交互,某些操作受到限制。
錯誤原因
當您嘗試存取靜態上下文中的實例(非靜態)欄位或方法(例如靜態方法內)時,會出現此錯誤。實例變數與類別的特定物件相關聯,而靜態變數和方法屬於類別本身,不需要物件實例。
解決方案:建立實例
要解決該錯誤,您需要在存取實例變數或呼叫實例方法之前建立該類別的實例。這是因為實例變數和方法無法直接從靜態上下文存取。
例如,在提供的程式碼片段中,靜態方法 main 也嘗試存取實例變數 r、cfr 和 area作為實例方法 c_cfr 和 c_area。若要解決此問題,請在main 方法中建立Cerchio 類別的實例,然後透過物件參考存取實例變數和方法:
<code class="java">public static void main(String[] args) { Cerchio cerchio = new Cerchio(); cerchio.r = 5; cerchio.c_cfr(); cerchio.c_area(); System.out.println("The cir is: " + cerchio.cfr); System.out.println("The area is: " + cerchio.area); }</code>
附加說明
以上是為什麼我在 Java 中收到「無法對非靜態欄位/方法進行靜態引用」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!