就是main是静态方法,对象还没创建时(也就是this=NULL)时,main就存在了,此时的this没有意义

解决方案 »

  1.   

    好像没见过你这么写的
    应该这么写吧
    public class test extends Frame implement WindowListener
    {
      public static void main(String args[])
      {
        ....
        t.addWindowListener(this);
      }
      //定义详细的要操作的方法的方法体
      //这里还要写出其他所有没有用到的WindowListener接口的方法的方法体
    }
    要么就是用Adapter来
    public class test extends Frame
    {
      public static void main(String args[])
      {
        .....
        WA wa=new WA();
        t.addWindowListener(wa);
      }
    }
    class WA extends WindowAdapter
    {
      //定义详细的要操作的方法的方法体
      //不用写出其他方法的方法体了
    }
      

  2.   

    这样说来,我在main()方法中的对象d,也不能用其他的method中了,比如上面的代码中,我做如下的修改:
    public class test extends Frame
    {
      public static void main(String args[])
        {  
          test d = new test()
          d.setSize (400,400);
          d.setVisible (true);
        }
       public test()
       {
         d.addWindowListener(new WinListen(this));
       }
    }
    在构造函数中,引用main()中定义的对象d,可不可以,也是同样的原因?
      

  3.   

    上面的问题还没有人回答,小弟再想提个问题,就是在frame中增加一个组件,如按钮、选择按钮等,可以在main()方法中,执行如下:
       d.add(各种控件);
    但是我看有些例子,不在main()方法中初始fram增加控件,而是构造函数中使用如下的方法增加:add(各种控件),为什么add()方法前可以省略引用的对象,省略是不是默认当前frame?不省略,在构造函数中使用:d.add(各各控件),编译时,系统提示"不能解析变量d",是什么原因?
      

  4.   

    我把程序所说的用中文表达一次(一些无关紧要的东西就省去了):
    这篇纪实文学名字叫“侠士”,首先我们介绍一下人物,就是“侠士”。
    侠士是一类非常特别的人。为什么这么说呢?因为每一个侠士刚生出来的时候,他便去找一个名字叫做杨过的侠士,让杨过跟一个不知名的女孩恋爱。故事就是这么开始的,当天地初开,地上白茫茫的一片,没有任何声明,上帝创造了一个侠士杨过,告诉他,你身长八尺,风流倜傥。.....下面呢?没有了。什么没有了?下面没有了。下面没有了,里面还有呢!
    话说上帝创造杨过,杨过刚生出来的时候,便去找一个名字叫做杨过的侠士,让杨过跟小龙女恋爱......main是创造杨过的上帝,杨过生出来的时候还没有名字,因为上帝当时还没有想好他叫杨过还是杨康,所以这时候那个小孩根本不知道怎么找到杨过。看起来你的基础确实比较差,不要急躁,编程之道就在生活中。
      

  5.   

    谢谢这位侠士,小弟犹如堕入云雾,能否通俗,简单点?
    是不是说:所有的类是通过main()方法建造,所以test d =new test()这句必须放在main()方法中?
      

  6.   

    佩服、佩服!!alou()不愧为生活中的JAVA高手啊!
      

  7.   

    当然不是所有的类都在main()方法里面建造。
    main()方法本身和对象的定义没有任何关系,它只是一个入口,就是地上白茫茫一片的时候的上帝。上帝只是创造了亚当和夏娃,现在那么多人,都不是上帝亲手创造的,而是亚当和夏娃生的。程序如文章,如生活,不要用神秘的眼光去看程序,否则你将迷惑于那些古怪的符号组合,解脱出来,去享受程序里面的思想,正如周大圣所说,我现在用心眼去看世界。
      

  8.   

    main(...)只是一个入口,一个Java Application是从main开始的main中不能用this是因为main是一个静态方法,在main中没有this