Darüber hinaus ist dies schlicht näher am
OOP Paradigma, dass u.a. das so genannte Geheimhaltungsprinzip postuliert, nach dem sämtliche inneren Zustände und Abläufe einer Klasse von aussen nicht greifbar sind, und lediglich über ein Interface indirekt zugänglich sein sollen. (Dies muss nicht zwangsweise wirklich über die Technik "Interface" passieren, die Terminologie überkreuzt sich da etwas. Properties bzw. Getter/Setter sind ein Interface im semantischen Sinne - also genau genommen vom Interface als eigene weitere Methodik in der
OOP abzugrenzen.)
Diese Begründung läuft jedoch pur über eine theoretische Definition. Technisch kann ggf. ein Propertyzugriff nachher genau so vom Compiler realisiert sein wie ein direkter (wenn das Property direkt auf das Feld durchgreift ohne einen Getter/Setter zu deklarieren in diesem Falle). Es ist prinzipiell eine ganz gute Idee an diesem Paradigma festzuhalten, da es wie schon erwähnt insbesondere die Wartbarkeit deutlich verbessern kann. Lediglich in sehr sehr wenigen Fällen gibt es wirklich einen guten Grund für die Verwendung von Public-Feldern. Sehr selten.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)