我对Java中的this
关键字感到困惑。如果一个类有两个构造函数,并且我们在某个方法中使用this
关键字,那么this
表示的对象是使用两个构造函数中的哪一个实例化的?
答案 0 :(得分:21)
您必须区分this.
和this()
,可以这么说:
大多数情况下,您使用this
作为对当前对象的引用,即在this
运行时替换此对象的引用。例如,如果您使用this
作为参数或参考this.someMember
。
您可以使用具有不同参数的不同构造函数,即重载构造函数。在构造函数的开头,您可以使用this(parameter_1, ... parameter_n);
作为第一条指令来调用不同的构造函数。
可以在the java tutorial about the this keyword找到对这两种情况的一个很好的解释。
答案 1 :(得分:7)
它并不关心,也无法区分
这有点像建造汽车。 根据功能,使用其他构造函数, 但最后你有一辆车(这个)
答案 2 :(得分:7)
this
关键字有两个含义,混淆可能是围绕这两个含义。
在构造函数中,this(...)
就像构造函数的方法调用。编译器根据您使用的参数的数量和类型选择要调用的构造函数。
当您使用this
作为参考时,它表示此对象,并且使用的构造函数并不重要。
答案 3 :(得分:3)
您可以将this
关键字视为占位符。在运行时,关键字与您正在处理的对象的对象引用交换。
答案 4 :(得分:3)
它不需要对构造函数,内存分配或类似的东西做任何事情。 this
关键字只是当前对象实例引用。
答案 5 :(得分:1)
在方法体中使用this
是指该方法所在的类的实例。
这也意味着无法在this
上下文中使用static
。
答案 6 :(得分:1)
this
表示实例本身不依赖于实例的构建方式
答案 7 :(得分:0)
1.'this'关键字是指使用它的类的对象。通常我们在类中编写实例变量,构造函数和方法。所有这些成员都用'this'表示。
2.当一个对象被创建到一个类时,也会在对象内部创建一个默认引用。它只是'this'。
3. 此关键字的示例:
Sample(int x)//参数化构造函数{
this.x = x; //将局部变量x存储到当前类实例变量x
中
}