繁体   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