我是java编码的初学者,我很难理解下面的场景。下面是eclipse的屏幕截图,而我正在尝试调试我的程序。我无法理解为什么右上角的变量部分将youtubePlayer.setOnFullScreenListener()
显示为变量名称,将this
的值显示为this
。我一直认为这是一个指针,而不是一个变量。而且,尚未创建用于类测试的对象。那么,它引用了什么?如果您看到屏幕截图,则不会在程序中使用。在调试时,它显示为变量名称
任何人都可以帮我这个吗?
答案 0 :(得分:5)
当用作主表达式时,关键字
this
表示一个值,该值是对调用实例方法或默认方法的对象(第15.12节)的引用,或者是对正在构造的对象的引用。 / p>
因此,基本上你可以将它视为只读变量。您可以使用它做同样的事情,就像大多数其他变量一样。
在你的截屏中,你的执行是在构造函数的开头 - 所以this
引用当前正在初始化的对象。
答案 1 :(得分:0)
this
代表当前上下文中的当前对象。在任何给定的实例上下文(方法)中,这表示调用此方法的对象。
请注意,对于实例方法的任何调用,对象(this
)都是隐式传递。因此,您会在变量部分中看到this
的实例。
this
并不完全是一个引用(从技术上讲,它实际上指的是当前对象)。
答案 2 :(得分:0)
指针是一个变量。它是一个变量,包含被引用对象的内存地址。
在调试窗口中,记下"(ID = 18)"。这是单个对象的内部ID。所以你的对象已被实例化,而this关键字当前是指ID为18的那个对象的实例。
如果您的调试器在此文件上,则已分配该对象。如果我记得我的Eclipse调试正确,它看起来像是在调用构造函数。这意味着已经评估了所有静态项,并且您的对象已准备好执行它的构造函数 - 这意味着它已经被分配。