I realized that it's not that accessors and mutators are problems in themselves, but ones that return primitives
(strings, integers, etc.) are. Returning complex objects is something you do all the time, and it doesn't matter if the method happens
to have the word 'get' or 'set' in it
Just a point of clarification: Get/Set methods are a short way of labelling
methods that access an objects attributes, that is, methods that are only
concerned with reading or writing object state directly. It has
nothing to do with whether the value of that slot is a primitive or an
object, but whether it represents object-state. Objects should rarely
provide methods to the outside world that are only concerened with
accessing state.