import java.awt.*;public class MyFrame extends Frame {   public void launchFrame() {
      setBounds(300, 300, 300, 300);
      setVisible(true);
   }   public static void main(String[] args) {
      new MyFrame().launchFrame();
   }
}MyFrame 从Frame继承,所以MyFrame从Frame哪里也继承了setBounds(), setVisible() 方法, 但是这些方法不是static的, 怎么可以在launchFrame()方法中直接调用呢;

解决方案 »

  1.   


    this.setBounds(300, 300, 300, 300);
    this.setVisible(true);
      

  2.   

     new MyFrame()这个实例也可以这么些Frame f = new MyFrame(),这样能明白了不
      

  3.   


    import java.awt.*;public class MyFrame extends Frame {  public void launchFrame() {
      setBounds(300, 300, 300, 300);
      setVisible(true);
      }  public static void main(String[] args) {
      //new MyFrame().launchFrame();这里错了.
         //要定义一个类,不能像你上面这样.
         MyFrame myFrame = new MyFrame();
         myFrame.launchFrame();
      }
    }
      

  4.   

    楼主你要分清实例和类new MyFrame().launchFrame(); 这是新建了一个MyFrame对象然后调用方法MyFrame.launchFrame();  这个是直接调用个MyFrame类里面的静态方法,如果不是static就出错