La programación orientada a objetos (POO) se basa en la representación de entidades del mundo real como objetos con atributos y comportamientos. Un objeto es una instancia de una clase que define sus propiedades y métodos. Los objetos interactúan mediante el envío de mensajes y cada objeto está encapsulado y oculta su implementación interna. La POO también incluye conceptos como herencia, polimorfismo y abstracción.