2012-08-09 76 views
1

我已經注意到,將一個非靜態方法添加到包含java應用程序中main方法的類中,然後在main方法內調用它,會導致編譯錯誤。這我可以理解,因爲這個類從來沒有實例化。爲什麼applet中允許使用非靜態方法?

但是,將一個非靜態方法添加到Applet類並從內部調用它,例如,paint方法正常工作。爲什麼是這樣?小應用程序類是由appletviewer實例化的,還是有另一種解釋,爲什麼前者在後者不允許的情況下是允許的?

+0

你注意到['paint'(http://docs.oracle.com/javase/7/docs/api/java/awt/Container.html#paint(java.awt.Graphics) )不是一個靜態方法? ;) – oldrinb 2012-08-09 20:55:29

+0

我確實做到了,是的,我明白了你的觀點:) – andreasdr 2012-08-09 21:16:05

回答

6

是applet類的小程序查看

絕對莫名其妙實例化。請參閱Applets tutorial"Life Cycle of an Applet"部分。特別是:

由於applet被加載的結果,你應該看到文本「initializing ... starting ...」。加載小程序時,會發生以下情況:

  • 創建了小程序的控制類(Applet子類)的實例。
  • 小程序自行初始化。
  • 該小程序開始運行。
相關問題