在具体情况下的含义

时间:2014-09-11 23:56:43

标签: java this

我目前正在阅读有关this关键字的内容,并且不明白为什么这样做会有用:

this.object = object;

object是一个随机变量。我只是不明白为什么我们喜欢,this.xxx = xxx

请帮帮我!

2 个答案:

答案 0 :(得分:0)

有必要指定您要将值分配给字段,而不是参数或局部变量:

public void setFoo(Foo foo) {
    this.foo = foo;
       ^        ^
       |        \--- Take the value of the parameter
       \---- Assign to the field
}

如果您刚刚写道:

foo = foo;

在上面,它不会做任何事情 - 它会将参数的值分配回参数。

然而,另一个选择是使用不同的参数名称:

public void setFoo(Foo newFoo) {
     foo = newFoo;
}

现在字段和参数有不同的名称,因此您无需另找方法来区分它们。

答案 1 :(得分:0)

想象有一个像

这样的二传手
private Object obj;
public void setObject (Object obj) 
{
    this.obj = obj;
}

this将对象范围限定在类字段中,否则使用

    obj = obj;

您将同一个对象设置为同一个对象。