使用'这个' Java构造函数中的关键字

时间:2012-04-01 19:16:01

标签: java this

我对Java中的this关键字感到困惑。如果一个类有两个构造函数,并且我们在某个方法中使用this关键字,那么this表示的对象是使用两个构造函数中的哪一个实例化的?

8 个答案:

答案 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
中 }