我正在试图找出以下代码。根据Java API,ImageIcone
称为“非静态方法”getImage()
,没有任何实例变量:
public void paintComponent(Graphics g) {
Image img = new ImageIcon("imgtest.jpg", "description...").getImage();
g.drawImage(img,3,4,this);
}
答案 0 :(得分:3)
此
new ImageIcon("imgtest.jpg", "description...")
创建一个实例。在该实例上调用getImage()
方法,然后丢失对该实例的所有引用。如果无法访问该对象,则可以对其进行垃圾回收。
请记住,调用实例方法所需的只是一个解析为对象引用的表达式。引用类型的变量是一个这样的表达式。构造函数调用是另一个这样的表达式。调用具有某种引用类型的返回类型的方法也是这样的表达式。
答案 1 :(得分:3)
您不需要'实例变量。'您只需要实例,new ImageIcon("imgtest.jpg", "description...")
就是实例。
答案 2 :(得分:0)
在您的代码中,您将使用代码new ImageIcon("imgtest.jpg", "description...")
创建ImageIcon类的匿名对象。由于您将来不打算使用该对象,这就是您选择创建匿名对象的原因。