
1. Caracteristicas
1.1. Las características mas importantes son :
1.1.1. Abstracción:
1.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.
1.1.2. Encapsulamiento:
1.1.2.1. Significa reunir a todos los elementos que pueden considerarse pertenecientes a una misma entidad, al mismo nivel de abstracción.
1.1.3. Modularidad:
1.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.
1.1.4. Principio de ocultación:
1.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.
1.1.5. Polimorfismo:
1.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.
1.1.6. Herencia:
1.1.6.1. Los objetos heredan las propiedades y el comportamiento de todas las clases a las que pertenecen.
1.1.7. Recolección de basura:
1.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.