Для чего используются геттеры и сеттеры в реальных примерах?
==============================================================

 Для чего используются геттеры и сеттеры на реальных примерах? 

 Суть геттеров/сеттеров - в создани буфера, который защитит объекты от грубого вмешательства во внутреннюю структуру. Вы как бы создаете свой API для пользования объектом и гарантируете, что если пользоваться им - все пройдет хорошо. Вы заранее планируете свойства переменных и защищаете их от излишнего вмешательства.  
  

В большинстве примеров из реальной жизни - это все лишнее. Подобный уровень проектирования начинает обретать смысл - тогда когда вам понадобится разработать какое-то очень серьезное, отказоустойчивое приложение. Приложение которое будет бросать четкие и понятные ошибки, если будешь пользоваться им неправильно.  
  

Какие проблемы можно предотвратить?  

- запись в переменную другого типа данных  

- перезапись константы  

- затирание/перезапись метода  

- чтение не обработанных данных напрямую  

- чтения данных без разрешения  

- и т.д.