The main benefit of Object Oriented Design (that is, designing a
program using classes) is that you can model your program
towards real life creating separate components and that these
components. In practice, let's consider a game, like pacman. If
you would describe pacman to someone, you could say "pacman is a
game where you move around a figure, which eats up dots, fruits
and keeps away from ghosts". In object oriented design, we would
analyse that as the following: - Figure pacman which moves and
eats things - Eaten things: dots, fruits, ghosts (note that for
clarity I'm leaving out the actual game grid) We can then
transfer this into classes: Class Dot is a Thing: lives remain
the same; Class Fruit is a Thing: Class Ghost is a Thing: Keep
in mind that this is just a rough example. The benefit is that
when you would like to add a "thing", it's easy to do, when you
want to change the score added by eating a dot, it's easy to do.
That is because every class forms a seperate entity, with a
limited interface