1. Definición
1.1. La programación orientada a objetos o POO (OOP según sus siglas en inglés) es un paradigma de programación que usa los objetos en sus interacciones, para diseñar aplicaciones y programas informáticos.
2. Caracteristicas
2.1. Las características mas importantes son :
2.1.1. Abstracción:
2.1.1.1. Cada objeto en el sistema sirve como modelo de un "agente" abstracto que puede realizar trabajo, informar y cambiar su estado, y "comunicarse" con otros objetos en el sistema sin revelar cómo se implementan estas características.
2.1.2. Encapsulamiento:
2.1.2.1. Significa reunir a todos los elementos que pueden considerarse pertenecientes a una misma entidad, al mismo nivel de abstracción.
2.1.3. Modularidad:
2.1.3.1. Se denomina Modularidad a la propiedad que permite subdividir una aplicación en partes más pequeñas (llamadas módulos), cada una de las cuales debe ser tan independiente como sea posible de la aplicación en sí y de las restantes partes.
2.1.4. Principio de ocultación:
2.1.4.1. Cada objeto está aislado del exterior, es un módulo natural, y cada tipo de objeto expone una interfaz a otros objetos que especifica cómo pueden interactuar con los objetos de la clase.
2.1.5. Polimorfismo:
2.1.5.1. Comportamientos diferentes, asociados a objetos distintos, pueden compartir el mismo nombre, al llamarlos por ese nombre se utilizará el comportamiento correspondiente al objeto que se esté usando.
2.1.6. Herencia:
2.1.6.1. Los objetos heredan las propiedades y el comportamiento de todas las clases a las que pertenecen.
2.1.7. Recolección de basura:
2.1.7.1. Garbage collector es la técnica por la cual el entorno de objetos se encarga de destruir automáticamente, y por tanto desvincular la memoria asociada, los objetos que hayan quedado sin ninguna referencia a ellos.