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