Explain the core pillars of object-oriented programming and how you have applied them in your past projects.