Вопрос по поводу геттеров и сеттеров - PullRequest
1 голос
/ 26 сентября 2011

Я знаю, что это может быть глупым вопросом для многих, но я обычно предпочитаю придерживаться правильной / лучшей реализации. В Java, при написании метода получения / установки, было бы лучше ссылаться на переменную экземпляра с помощью this или обращаться к ней напрямую?

Спасибо

Ответы [ 4 ]

5 голосов
/ 26 сентября 2011

При написании сеттера вы, как правило, вынуждены ссылаться на переменную экземпляра ( не локальная переменная), используя this, чтобы различать переменную экземпляра и параметр;например,

public void setFoo(int foo) {
  this.foo = foo;
}

Однако при написании метода-получателя обычно нет необходимости ставить префикс переменной экземпляра следующим образом:

public int getFoo() {
  return foo;
}
3 голосов
/ 26 сентября 2011

Это не имеет большого значения, если вы ссылаетесь на правильные переменные.

Тем не менее, обычной практикой является обращение к локальным полям с помощью this, чтобы не смешивать их с локальными переменными:

public void setField(int field)[
    this.field = field;
}
1 голос
/ 26 сентября 2011

Это просто вопрос вкуса , хотя у него есть некоторые конкретные случаи использования.

Когда подклассы , ключевое слово this может использоваться для подпрограмм и переменных, чтобы подчеркнуть, что они действительно принадлежат суперклассу (или этому классу), а не, например, статически импортированы.

Он также обычно используется для устранения неоднозначности параметров из локальных переменных.Например,

private Foo foo;
public void setFoo(Foo foo) {
     this.foo = foo;
}
0 голосов
/ 26 сентября 2011

Указание this, как правило, облегчает любые проблемы с переменной областью, с которыми вы можете столкнуться позже.

Это не обязательно.

...