Treat internal state and representation as implementation details, not as a client-facing contract. Nonessential accessors can expose private variables, increase cognitive load, and let client code depend on choices that may later change. section 8.2
Mistake: storing and exposing a derived value
A Circle stores both radius and area, initializes area in its constructors, and exposes getArea(). Clients can now depend on the stored representation. A safer design stores only radius and computes the area in getArea(), preserving the class invariant while allowing the representation to change. section 8.2


