Какова наилучшая практика использования ключевого слова this в Java? Например, у меня есть следующий класс:
class Foo {
    Bar bar;
    public Foo(Bar bar) {
         this.bar = bar;
    }
}
Это прекрасно и все, но Java достаточно умен, чтобы знать, что происходит, если я изменил оператор в конструкторе на
 bar = bar;
Итак, зачем использовать ключевое слово this? (Я понимаю, что в некоторых ситуациях совершенно необходимо использовать его, я просто прошу о таких ситуациях). На самом деле, я обычно использую ключевое слово исключительно для удобства чтения, но что такое обычная практика? Используя его во всем магазине, мой код выглядит немного грязным, например
boolean baz;
int someIndex = 5;
this.baz = this.bar.getSomeNumber() == this.someBarArray[this.someIndex].getSomeNumber();
Очевидно, что это плохой код, но он иллюстрирует мой пример. В этих случаях это зависит от личных предпочтений?