在Java中理解这个关键字

在Java中理解这个关键字,java,applet,this,Java,Applet,This,在小程序的init()方法中注册事件时,我们添加方法addTypeListener(this) 但是我知道关键字this指的是调用该方法的对象。那么,当我们还没有创建applet类的任何对象时,this指的是什么? 请澄清我的疑问 但我知道关键字this指的是调用该方法的对象 不完全是这样。实际上,在实例方法的代码中, 此引用调用该方法的对象 那么,当我们还没有创建applet类的任何对象时,它指的是什么 JVM已经创建了Applet类(即Applet的子类)的对象/实例, 因此,这个引用了Ap

在小程序的
init()
方法中注册事件时,我们添加方法
addTypeListener(this)

但是我知道关键字
this
指的是调用该方法的对象。那么,当我们还没有创建applet类的任何对象时,
this
指的是什么? 请澄清我的疑问

但我知道关键字this指的是调用该方法的对象

不完全是这样。实际上,在实例方法的代码中,
引用调用该方法的对象

那么,当我们还没有创建applet类的任何对象时,它指的是什么

JVM已经创建了Applet类(即Applet的子类)的对象/实例,

因此,
这个
引用了Applet类的实例

“this”关键字是指您正在处理的类的对象This'关键字可用于调用类的默认构造函数。类似地,在使用继承概念时,“super”关键字用于调用继承类的默认构造函数,或者可以被称为继承的/父类对象。

当您没有显式创建小程序实例时,之所以能起作用,是因为JRE对小程序的处理略有不同

applet是一个特殊的类,Java在加载时为您实例化。从那里开始,对象由JRE拥有,并由JRE接口

一旦Java创建了小程序的实例,它就会调用
init()
来代替构造函数(因为它是一个原型)


同样,当小程序完成或页面卸载时,Java会担心关闭小程序。

仅仅因为您没有创建类的实例并不意味着什么都没有创建。一旦所有构造函数完成,就创建了对象
init()
不是构造函数,除非从构造函数调用它,否则它将具有完整构造的对象可用。+1,这实际上不是世界上最糟糕的问题。
不是指调用方法的对象,而是指调用方法的对象。
super()
this
与默认构造函数无关。
'this'关键字可用于调用类的默认构造函数。
错误
可在构造函数中用于调用任何其他构造函数。类似地,
super
可用于调用直接父类的任何构造函数。与
this
类似,
super
也可以用于方法中,以调用方法的父版本。浏览器没有内置JVM。至少,当前没有任何浏览器:)