Избегайте открытых переменных, за исключением классов, которые по сути являются структурами в стиле C. Это просто плохая практика.
Как только вы определили интерфейс класса, вы никогда не сможете изменить его (кроме добавления к нему), потому что люди будут опираться на него и полагаться на него. Публичная переменная означает, что вам нужна эта переменная, и вы должны убедиться, что она имеет то, что нужно пользователю.
Теперь, если вы используете геттер, вы обещаете предоставить некоторую информацию, которая в настоящее время хранится в этой переменной. Если ситуация изменится, и вы не захотите постоянно поддерживать эту переменную, вы можете изменить доступ. Если требования меняются (и я видел некоторые довольно странные изменения требований), и вам в основном нужно имя, которое находится в этой переменной, но иногда в этой переменной, вы можете просто изменить геттер. Если вы сделали переменную общедоступной, вы застряли бы в ней.
Это не всегда происходит, но я считаю, что гораздо проще просто написать быстрое получение, чем проанализировать ситуацию, чтобы увидеть, не пожалею ли я обнародовать переменную (и рискую ошибиться позже).
Делать переменные-члены частными - хорошая привычка. Любой магазин, имеющий стандарты кода, вероятно, запретит публиковать случайные переменные-члены, и любой магазин с обзорами кода, вероятно, будет критиковать вас за это.
Всякий раз, когда это действительно не имеет значения для простоты написания, войдите в более безопасную привычку.