1、用实例作参数时,何时用class a形式,何时用new class()形式? 
比如: 
public void paint(Graphics g){}为什么不能写成public void paint(new Graphics()){}? 
而addKeyListener(new KeyAdapter(){});就不能写成addKeyListener(KeyAdapter k{});? 2、为什么我用eclipse运行有参数传递的applet时,参数总是传递不了,而在浏览器中查看时一切正常? 
<applet code="A" width=300 higth=240> 
<param name=m value=n> 
</applet> 
在eclipse中,m的值n在小应用程序中用getParameter("m")方法传递,没有错误,但结果却是发现不了。

解决方案 »

  1.   

    1  两种情况是因为 一个是方法定义 一个是方法调用 当你调用paint的时候如果希望继承一个Graphic对象出来 一样可以像AddListener一样用
      

  2.   

    根据需要的参数来确定什么时候用new
    如果用已经有的对象,则不用new
      

  3.   

    1、用实例作参数时,何时用class a形式,何时用new class()形式? 
    比如: 
    public void paint(Graphics g){}为什么不能写成public void paint(new Graphics()){}? 
    而addKeyListener(new KeyAdapter(){});就不能写成addKeyListener(KeyAdapter k{});?==============
    方法在声明时要指定形参的类型. public void paint(Graphics g){}
    调用方法时只能给出实参:
    a.paint(new Graphics()) // 相当于 graphics = new Graphics();  a.praint(graphics);
    addKeyListener(new KeyAdapter(){});
    这是匿名类的用法. 相当于:
    class AKeyListener extend KeyAdapter {
        //....
    }
    akeylistener = new AKeyListener();
    addKeyListener(akeylistener);
    所以 new KeyAdapter(){} 是定义了一个新类并创建了新类的对象. 放在一步完成.
      

  4.   

    1.在C++中,类名 对象名;这样之后就算创建了这个类的对象了,但在JAVA中要创建对象则必须要用new,class a 并没有给这个对象分配空间;而 new class()则是创建了对象,分配了空间;
    public void paint(Graphics g){} 关于这个的话,或许可以参考下 public void paint(int g){},它只是说明这个方法的参数是什么类型的;不知道我上面的解释可以否.