Java 编写getter和setter的不同方法?
我见过使用Java 编写getter和setter的不同方法?,java,Java,我见过使用this和不使用this的访问器方法。它们产生相同的结果吗 例如: public setName(string name){ this.name=name; } public setName(string n){ name=n; } public void getName{ return name; } public void getName{ // is "this" here useless? return this.name; }
this
和不使用this的访问器方法。它们产生相同的结果吗
例如:
public setName(string name){
this.name=name;
}
public setName(string n){
name=n;
}
public void getName{
return name;
}
public void getName{
// is "this" here useless?
return this.name;
}
有什么区别?哪种方法更好?当您想要引用与方法中的局部变量同名的类级变量时,需要使用
this
。仅当变量具有相同名称时才需要此选项。如果愿意,您可以随时使用此
,但这不是必需的。两者的区别是什么
this.s = s;
及
是的,它们的功能和产生的字节码(afaik)完全相同 “this”关键字仅在引用实例变量(使用类或相关超类定义的非静态变量)时使用,以便将其与同名的局部变量区分开来。在这种情况下,省略“this”关键字会将局部变量分配给自身 关于更好的编辑,有些人不喜欢命名相同的变量,但有些人喜欢使用“this”来显式引用实例变量。归根结底,这是一个品味和可读性的问题。这是一样的。 如果您的方法有一个与类字段同名的变量(例如“name”),您需要写“this.name”来引用类字段,因为只写“name”是指方法变量 因此,在您编写的第二个示例中,您有两个不同的名称(“name”和“n”),您不需要写“this.name”。 顺便说一句,在第二个例子中,如果你愿意,你可以自由地说“this.name”,但这不是强制性的。。。(在我看来,这不是强制性的,但它是一种使代码更易于阅读的好方法) 最后选择你喜欢的方法。 在我看来,第一种是更“优雅”的代码编写方式
s = myString;