Perhaps I have defined a function. Let's call the function
and it is part of the
that populates my social circle.
If I call that method on my best friend (who is obviously a person in real life, but since this is a digital system she is represented by an object) with
Friend bestie = new Friend(); bestie.getSomeIceCreamFor(me)
I will be very upset if the result of that is my bestie "printing" some ice cream.
Because if she returns some ice cream, she has actually given me the ice cream (or data). This is most likely what I wanted. If, however, she "prints" me some ice cream, all I have is a lovely picture of a ice cream that someone else is probably now eating (i.e. an output copy of the state of data in that moment) .