java復合數(shù)據(jù)類型 非靜態(tài)方法可以調(diào)用靜態(tài)方法與變量嗎?
非靜態(tài)方法可以調(diào)用靜態(tài)方法與變量嗎?原因很簡單,因為靜態(tài)方法可以直接使用而無需實例化。但非靜態(tài)方法只能在實例的幫助下使用。如果在靜態(tài)方法中使用非靜態(tài)變量,則不能直接使用“無實例化”變量。矛盾。為什么不
非靜態(tài)方法可以調(diào)用靜態(tài)方法與變量嗎?
原因很簡單,因為靜態(tài)方法可以直接使用而無需實例化。但非靜態(tài)方法只能在實例的幫助下使用。如果在靜態(tài)方法中使用非靜態(tài)變量,則不能直接使用“無實例化”變量。矛盾。
為什么不能從靜態(tài)的方法里面調(diào)用非靜態(tài)方法,或變量?
無需初始化即可調(diào)用靜態(tài)方法。例如,學生班有一個靜態(tài)的方法學習,可以學生學習而不是實例化一個student對象。然而,非靜態(tài)全局變量只能在對象實例化后綁定到實例化對象時使用,因此存在矛盾。如果靜態(tài)方法調(diào)用非靜態(tài)變量,則該變量可能不會實例化,因此無法調(diào)用。
java非靜態(tài)方法可以調(diào)用靜態(tài)變量嗎?
當然。
1. 靜態(tài)成員變量和靜態(tài)成員方法屬于類而不是特定實例。靜態(tài)成員(包括屬性和方法)已在類加載階段初始化,因此當實例訪問靜態(tài)成員時,靜態(tài)成員必須已經(jīng)存在,以便可以訪問。
2. 另一方面,如果您讓靜態(tài)方法訪問實例成員,它將不起作用,因為實例成員的初始化在靜態(tài)成員之后
&Ltbr>您的主方法是靜態(tài)的(這永遠不能更改),但是Java規(guī)定靜態(tài)方法不能引用非靜態(tài)變量或方法。因此,在main方法中,您不能訪問您首先定義的變量,例如jtextfield、IP1、IP2、IP3、IP4,即使您首先定義它,您仍然必須在main方法中定義它;您不能調(diào)用非靜態(tài)方法,就像if(checkip()==0)一樣,這將提示您出錯。有兩種解決方法<br>。一種是將變量和方法聲明為靜態(tài)的(不建議浪費內(nèi)存空間)。另一種方法是使用面向對象技術聲明一個對象<br>test t=newtest()<br>,然后在t中調(diào)用test()方法和成員變量,這樣它就不會提示錯誤。LZ似乎還沒有理解Java的思想。初始化可以在構造函數(shù)中完成。