簡體   English   中英

調用沒有實例變量的非靜態方法

[英]calling non-static method without instance variable

我試圖找出下面的代碼。 ImageIcone根據Java API稱為“非靜態方法” getImage() ,沒有任何實例變量:

public void paintComponent(Graphics g) {
    Image img = new ImageIcon("imgtest.jpg", "description...").getImage();
    g.drawImage(img,3,4,this);
} 

這個

new ImageIcon("imgtest.jpg", "description...")

創建一個實例。 在該實例上調用getImage()方法,然后對該實例的所有引用都會丟失。 如果該對象不可訪問,則可以對其進行垃圾回收。

請記住,調用實例方法所需要做的只是一個解析為對象引用的表達式。 引用類型的變量就是這樣一個表達式。 構造函數調用是另一個這樣的表達。 具有某種引用類型的返回類型的方法的調用也就是這樣的表達式。

您不需要“實例變量” 您只需要一個實例new ImageIcon("imgtest.jpg", "description...")是該實例。

在您的代碼中,您正在使用代碼new ImageIcon("imgtest.jpg", "description...")創建ImageIcon類的匿名對象。 由於您將來將不再使用該對象,因此您選擇創建一個匿名對象。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM