La programación orientada a objetos se define como un enfoque que utiliza objetos para representar entidades con estado, comportamiento e identidad, facilitando la escritura y mantenimiento de programas. Surge de Simula 67 y se consolida a partir de C++, promoviendo conceptos como clase, herencia, encapsulamiento y polimorfismo, que permiten estructurar el código de manera más eficiente. También se destaca la recolección de basura, que gestiona la memoria automáticamente en algunos lenguajes, liberando a los programadores de esa tarea.