这两种方法有什么区别?

Non*_*oob 2 java methods setter this

方法1:

public void setAge(int newAge){
    age = newAge;
}
Run Code Online (Sandbox Code Playgroud)

方法编号2

public void setAge (int age){
    this.age = age;
}
Run Code Online (Sandbox Code Playgroud)

Lod*_*ijk 5

在两者中,必须假设对象具有一个名为的字段age.

第二版

在第二个中,还有一个名为的参数age.由于该参数age与字段具有相同的名称age,因此它" 隐藏 "该字段.因此,在第二个版本中,您看到的任何地方age都将引用参数,而不是字段.

由于该字段是隐藏的,因此您需要一种方法来访问它.您仍然可以使用this参考来获得它.this引用"this"对象,并this.age访问该字段而不是参数.所以字段this.age设置为参数age.

第一版

第一个版本通过使用不同的参数名称来避免这种歧义,因此该字段不会被隐藏,因此它仍然将字段age设置为参数但不需要this.前缀.