Explain the core concepts of object-oriented programming and provide an example of how you implemented them in a past project.