上面那个用了static 实力化后连编译都不能通过。

解决方案 »

  1.   

    哥们     public void show()
    {

        OSDemo frmOSDemo=new OSDemo("操作系统");
        frmOSDemo.pack();
        frmOSDemo.show();
    }     public void main(String[] args)
    {
    show();
    }你看看清楚哦,main方法应该是static的,你这个main()不是程序要找的入口点哦,另外static方法中不能访问非静态成员的,必须通过实例.非静态成员才行哦
      

  2.   

    Patrick_DK(疾风摩郎) 谢谢你啊,我又看了一下书,大致明白了:)
      

  3.   

    "Static method are not allowed to use the non-static feature of their class"----Complete Java 2 Certification Study Guide
      

  4.   

    我的qq 是888669,初学java,希望能和大家交朋友
      

  5.   

    to  totodo(小土豆仙) :你找本入门级的书,好好看看语法基础和OO的基本思想,呵呵大家一起进步
      

  6.   

    static方法不能直接访问非静态的成员变量以及成员函数, 因为不能保证该类已创建实例。OSDemo o = new OSDemo();
    o.show()
      

  7.   

    哎呀,怎么这么快就解决了,看题目时我还偷着乐呢,sign~
      

  8.   

    jacob1(东南西北) :
    还没解决呢。我还有好多问题想问的:)还有机会:)
      

  9.   

    需要static 方法
    show已经为Frame的static 方法,且不能覆盖,所以新建一个方法show1改为
    import java.awt.*;
    //import java.awt.event;
    import java.applet.*;
    class OSDemo extends Frame
    {
    public OSDemo(String strTitle)
    {
    super(strTitle);
    MenuBar mnuMenuBar=new MenuBar();
    this.setMenuBar(mnuMenuBar); Menu mnuSet=new Menu("操作");
    MenuItem mnuCreate=new MenuItem("创建");
    MenuItem mnuDestory=new MenuItem("销毁");
    MenuItem mnuSleep= new MenuItem("阻塞");
    MenuItem mnuCall=new MenuItem("唤醒"); mnuSet.add(mnuSet);
    mnuSet.add(mnuCreate);
    mnuSet.add(mnuDestory);
    mnuSet.add(mnuSleep);
    mnuSet.add(mnuCall);
    mnuMenuBar.add(mnuSet);

    }
         public static void show1()
    {

        OSDemo frmOSDemo=new OSDemo("操作系统");
        frmOSDemo.pack();
        frmOSDemo.show();
    }     public void main(String[] args)
    {
    show1();
    }
    }
      

  10.   

    阅!---------------
    [email protected]
      

  11.   

    嘿嘿……
    我也晚来了一步,不过要分可能还来的急吧!
    :)
    totodo (小土豆仙) :你进步很快哦!
      

  12.   

    ilka() 谢谢你回复。按照你这样改写程序依然无法执行( 只是编译通过)
    后来我改成这样就可以了。
    import java.awt.*;
    //import java.awt.event;
    import java.applet.*;
    class OSDemo extends Frame
    {
    public OSDemo(String strTitle)
    {
    super(strTitle);
    MenuBar mnuMenuBar=new MenuBar();
    this.setMenuBar(mnuMenuBar); Menu mnuSet=new Menu("快接操作");
    MenuItem mnuCreate=new MenuItem("创建");
    MenuItem mnuDestory=new MenuItem("销毁");
    MenuItem mnuSleep= new MenuItem("阻塞");
    MenuItem mnuCall=new MenuItem("唤醒"); mnuSet.add(mnuSet);
    mnuSet.add(mnuCreate);
    mnuSet.add(mnuDestory);
    mnuSet.add(mnuSleep);
    mnuSet.add(mnuCall);
    mnuMenuBar.add(mnuSet);
    }
         public void show1(OSDemo frm)
    {

        //OSDemo frmOSDemo=new OSDemo("操作系统");
        frm.pack();
        frm.show();
    }    public static void main(String[] args)
    {
    OSDemo frm=new OSDemo("test");
    frm.show1(frm);
    }
    }
    谢谢大家的回贴 ,我对java的API 还有OO 都了解还不够,给大家添麻烦了。
      

  13.   

    UP
    —————————————————————————————————
             ____()()
            /      @@
      `~~~~~\_;m__m._>o     -------大米在哪里?大米在哪里??
      

  14.   

    呵呵 ,我学c ,c#,又改学java, 不知道深入哪个? 
      我觉得java很好, 有点郁闷的就是,基础学完了不知道干什么 ,
      哎,让人笑掉大牙 !  所以兄弟们 多多指教啦!
      "油箱 "[email protected]   :0
                      
                                        恭喜发财
      

  15.   

    其实你的问题的关键在于,你应该将含有要运行的main方法的类定义为public
    也即你应该用:
    public class OSDemo extends Frame{}来声明,但如果你不想实例化就运行的话你,不能在main方法中使用静态方法;OK!
      

  16.   

    我也是刚学java不久,大家可以互相帮助一下,是朋友的请加入QQ:3692925
    谢谢!
      

  17.   

    回复人: jclch(攀登者) (  ) 信誉:100  is right
      

  18.   

    lai na feng le  
    hehe