import java.awt.*;import javax.swing.*;
import java.awt.event.*;
public class E2 extends Frame{
class WindowCloser extends WindowAdapter
{
public void windowClosing(WindowEvent we)
{System.exit(0);
}
}
E2()
{
super("简单图形");
setSize(200,200);
setVisible(true);
addWindowListener(new WindowCloser());
}
public void paint(Graphics e)
{
e.drawLine(50,50,120,120);
e.drawRect(50, 50, 70, 70);
e.drawOval(70,70,90,90);
}
public static void main(String args[])
{
new E2();
}
}
代码如上,主main函数中知识一个初始化声明语句,并没有声明要执行 E2类中的paint函数,为什么程序运行时会直接画出图形啊。本人刚开始看java,中间都是大概看的,不太懂这个,谢谢指点。
这个类在实例化的时候,会执行父类中的构造函数,而父类中的构造函数执行了paint方法,说明你的paint方法是重写父类的paint方法的,自然也会执行咯。你可以换一个函数名称比如paint2试下,那个函数就不会执行了。
在对象初始化的时候,本来就是会执行类中的函数的。。。