当创建一个对象并调用其公共(public)方法之一时,它可以使用本地属性。它们存放在哪里?我的意思是,在像 C 这样的语言中,一切都很清楚:要使用的变量必须作为参数传递给函数(或者必须是全局变量)。
它在 Java(以及其他 OO 语言)中发生了什么?本地方法如何使用实例的属性?
简而言之:当我们说this.variable
时,方法如何找到自己的变量? “this”指针是否作为函数参数隐式传递?
最佳答案
你是对的:每个实例方法都是一个函数,它比显式声明的参数多声明一个参数。第一个参数始终是隐式的 this
引用(指针)。这只是被 Java 的语法略微掩饰了:
firstArg.method(secondArg, thirdArg)
只是另一种写法
method(firstArg, secondArg, thirdArg)
请注意第一个参数的特殊特征:它是唯一一个动态调度方法发生在其类型上的参数。
关于java - 方法如何在运行时找到其对象的实例变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20992009/