当事件在Applet的init()
方法中注册时,我们添加方法addTypeListener(this)
。了解Java中的这个关键字
但我知道关键字this
引用了调用该方法的对象。所以,当我们没有创建任何applet类的对象时,this
会引用什么对象? 请澄清我的疑惑。
当事件在Applet的init()
方法中注册时,我们添加方法addTypeListener(this)
。了解Java中的这个关键字
但我知道关键字this
引用了调用该方法的对象。所以,当我们没有创建任何applet类的对象时,this
会引用什么对象? 请澄清我的疑惑。
'这个'关键字指的是你正在工作的类的对象。 'This'关键字可用于调用该类的默认构造函数。同样,在使用继承概念时,'super'关键字用于调用继承类的默认构造函数,或者可以被称为继承/父类'对象。
'super()'和'this'与默认的构造函数无关。 – 2014-10-08 16:47:05
''This'关键字可以用来调用类的默认构造函数。'错误; 'this'可以在构造函数中用来调用*任何其他*构造函数。同样,'super'可以用来调用直接父类的任何构造函数。像'this'一样,'super'也可以在方法中使用,以调用方法的父版本。 – Qix 2014-10-08 16:53:53
this
之所以没有明确创建你的Applet的一个实例是因为JRE对待Applets有一点不同。
Applets是一个特殊的类,Java实例化为您加载时。从那里开始,对象由JRE拥有,并通过这种方式与之交互。
一旦Java创建了一个applet实例,它就会调用init()
代替构造函数(因为constructors cannot conform属于原型contract)。同样,当你的applet完成或页面被卸载时,Java会担心关闭你的applet。
只是因为*你*没有创建类的实例并不意味着*没有*做。 – 2014-10-08 16:35:48
所有构造函数完成后,将创建该对象。 'init()'不是一个构造函数,除非从一个构造函数中调用它,否则它将具有完全构造的对象。 – 2014-10-08 16:36:37
+1,这实际上并不是世界上最糟糕的问题。 – Qix 2014-10-08 16:47:35