Стоит обращаться к переменным внутри класса просто по имени или this.имя?

Допустим у нас есть код:

 public Clock(String cityName, int hours, int minutes, int seconds) {
            this.cityName = cityName;
            this.hours = hours;
            this.minutes = minutes;
            this.seconds = seconds;            
        }

        private void printTime() {
        System.out.println(String.format("В г. %s сейчас %d:%d:%d!", cityName, hours, minutes, seconds))
        }  

Есть ли разница, обращаться к переменным класса внутри класса (в методе printTime, как вариант) просто по имени или this.имя, пожалуйста, подскажите?


Ответы (2 шт):

Автор решения: Miron

Это имеет техническое значение только тогда, когда у нас есть локальная переменная с точно таким же именем. Тогда нужно использовать this для обращения к переменной класса. Если же его не будет, компилятор поймет это как обращение к локальной переменной.
А в общем - пишите, как вам удобнее. Но лучше делать это в едином стиле - использовать везде this или не использовать вовсе(за исключением случая, описанного выше).

→ Ссылка
Автор решения: Storozhev DJ

Если например в классе объявлено поле name и в методе также объявлено поле name, то при обращении к name без указания this, будет использоваться переменная объявленная в методе. Поэтому, чтобы не сделать случайно ошибку и не использовать поле метода в место поля класса, лучше при обращении к полям класса писать this.

public class Clock {
private String name = "Name 1";

private void printTime() {
     String name = "Name 2";
     System.out.println(this.name);
     System.out.println(name);
     }
Out:
Name 1
Name 2
→ Ссылка