To take further design discussion,
As you have specified non setter/getter methods. I am interpreting it as interface methods which requires access to data/behavior of class There are two types of interface, push and pull interface. if pull-style interface for example web browser data, i.e. you desire information, you type URL and in response web page data shown. otherwise in push-style interface just transfer data to you, say Observer
pattern.
You can use either style or both, depending on your design.
for e.g. in case of Collection object, both-style can work as follows,
pull-style: a for iterate collection object of cars for its each element as, car.startEngine();
push-style: for each element in 'otherObject', the startEngine() method calls property of car, i.e through otherObject.startEngine(car);
more detail @
https://coderanch.com/t/441195/patterns/Observer-Pattern-Push-versus-Pull