I am trying to wrap my head around object oriented programming.
My understanding is that we have objects so we can design our programs to mirror real-life objects.
My understanding is that we have objects so we can design our programs to mirror real-life objects.
Maybe more like 'relate' them to real life objects, where applicable.
Should a fruit object rather be passed to a human object which has a Eat() function?
Yes, or something more general than a human.
I am trying to figure out the correct way to think about this. How closely, in general, should programming objects mirror real-life objects.
Only define what you need to define. Then the implementation (typically) becomes very obvious. In other words, you're probably thinking too hard.