Getters / Setters don't automatically mean that the internal state of an object is exposed. For example, an object may internally have mutable linked-list of something, but a Getter that returns an array (immutable) of immutable members.
What is the alternative to Getters / Setters (or, properties, which is basically just syntactic sugar) in an OO language?