0

例如:

如果您正在编写一个类构造函数并决定要传递一个数组,您可以使用“this 关键字来引用该数组吗?

private int[] a;
private int size;   

public Play(int[] a, int size)
{
this.a = a;
this.size = size;
}

我最初的猜测是否定的,因为它的行为类似于你不能将数据克隆到数组中的 c++。请帮助我理解它。

4

4 回答 4

3

来自java语言规范

当用作主要表达式时,关键字 this 表示一个值,该值是对调用实例方法的对象(第 15.12 节)或正在构造的对象的引用。

this 的类型是关键字 this 出现的类 C。

因此,当您在构造函数中使用时,它是对您正在构造的对象this的引用。Play当您这样做时this.someMember,您将取消引用存储在其中的引用this以访问someMember对象上的成员。该成员是一个数组并不重要。

于 2013-11-12T02:38:43.640 回答
1

只有当当前范围内的另一个变量共享相同的名称并且您想要引用该实例时,您才需要使用它。a和this.a没有区别

于 2013-11-12T02:36:57.583 回答
1

使用时this.a,它指的是实例变量a。由于在同一个范围内,现在有两个athis.a将引用实例变量并a引用作为参数传递的局部变量。

于 2013-11-12T02:39:11.487 回答
1

是的你可以。一个参考变量将被赋予另一个参考变量的值。它们指向的对象不会改变,也不会构造新的对象。

所以它不会clone有什么。

于 2013-11-12T02:39:21.107 回答