JAVA学习中的问题
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、用实例作参数时,何时用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(){} 是定义了一个新类并创建了新类的对象. 放在一步完成.