import java.awt.*;
public class TestPaint {
public static void main(String[] args) {
new TestPaint().new MyFrame().launchFrame();
} private class MyFrame extends Frame {
public void launchFrame() {
setBounds(500, 400, 300, 300);
setVisible(true);
}
public void paint(Graphics g) {
Color c = g.getColor();
g.setColor(Color.orange);
g.fillOval(50, 50, 30, 30);
g.setColor(Color.green);
g.fillRect(80, 80, 40, 40);
g.setColor(c);
}
}
}
上面的代码中的 main 方法中的
new TestPaint().new MyFrame().launchFrame();怎么解释?我有点不明白,希望高手指点。
所以必须在TestPaint或其子类(须构造函数修饰符为protect或以上)中才可以直接使用new MyFrame();
在外部其他类中(主要main方法作为程序的入口并不属于TestPaint类),必须通过x.new MyFrame();
来建立。其中x是TestPaint对一个实例对象。