如何使用java JAVA:靜態(tài)方法中不能出現(xiàn)非靜態(tài)變量嗎?
JAVA:靜態(tài)方法中不能出現(xiàn)非靜態(tài)變量嗎?方法內(nèi)部的定義稱為“局部變量”,而不是靜態(tài)變量。局部變量不能與靜態(tài)變量一起添加,包括受保護(hù)的、私有的和公共的變量。靜態(tài)變量在類中定義,在方法體之外。如果您清楚
JAVA:靜態(tài)方法中不能出現(xiàn)非靜態(tài)變量嗎?
方法內(nèi)部的定義稱為“局部變量”,而不是靜態(tài)變量。局部變量不能與靜態(tài)變量一起添加,包括受保護(hù)的、私有的和公共的變量。靜態(tài)變量在類中定義,在方法體之外。如果您清楚JVM,您應(yīng)該知道局部變量存儲在堆棧中,而靜態(tài)變量存儲在方法區(qū)域中。當(dāng)局部變量離開方法時,它們將被堆棧回收,而靜態(tài)變量則不會。因此,不能在局部變量之前添加static關(guān)鍵字。
java中無法在靜態(tài)方法中訪問非靜態(tài)變量(或方法)的問題?
&Ltbr>您的主方法是靜態(tài)的(這永遠(yuǎn)不能更改),但是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)存空間)。另一種方法是使用面向?qū)ο蠹夹g(shù)聲明一個對象<br>test t=newtest()<br>,然后在t中調(diào)用test()方法和成員變量,這樣它就不會提示錯誤。LZ似乎還沒有理解Java的思想。初始化可以在構(gòu)造函數(shù)中完成。