Este documento presenta conceptos clave de programación orientada a objetos (POO) en Java, incluyendo clases, objetos, atributos, métodos, herencia, encapsulamiento y polimorfismo. También explica el ciclo de vida de los objetos y cómo pensar en términos de objetos similares a la vida real.
4. Clase Prácticamente es una plantilla que describe los tipos de estado y comportamiento que pueden tener los objetos de este tipo.
5. Objeto En tiempo de ejecución, cuando la máquina virtual de java (JVM) encuentra la palabra reservada “new”, usará la clase apropiada para crear una instancia con sus respectivas características.
6. Atributo Un atributo es una características del objeto. Con esto, es posible darle un cierto estado al objeto creado.
7. Método Los métodos se refieren al comportamiento que tomará el objeto. Aquí es donde se almacena la lógica de la clase, proporcionando la funcionalidad que tendrá el objeto.
8. Herencia(1) En Java, permite extender la funcionalidad y características de una clase a otra. Permite el reúso de código. Tú puedes definir una clase (super clase, clase padre, de cierta manera abstracta) y posteriormente extenderla con clases más específicas (subclase, clase hijo).
9. Herencia(2) El padre no conoce nada acerca de sus hijos, sin embargo sus hijos deben definir quién es su papá (con la palabra reservada “extends”).
10. Herencia(3) Una clase hijo puede tener acceso a los atributos y métodos de la clase padre; incluso puede sobre-escribir los métodos (siempre y cuando no sean privados).
11. Encapsulamiento (1) Esta característica permite protección del código, flexibilidad y fácil mantenimiento. Consiste en la ocultación del estado de un objeto de forma directa, de manera que sólo se tiene acceso mediante sus métodos. De esta forma, los detalles de implementación permanecen ocultos a las personas que usan las clases, evitando modificaciones o accesos indebidos.
12. Encapsulamiento (2) Además, el usuario de la clase no se tiene que preocupar de cómo están implementando los métodos y propiedades, concentrándose sólo en cómo debe usarlos. ¿Qué debe hacerse? Variables de instancia privadas. Métodos públicos para el acceso. Convención de JavaBean getters y setters.
14. Polimorfismo (1) Característica de Java que permite tomar como algo igual a un nivel superior dos cosas que son diferentes a un nivel más bajo. Por ejemplo: Animal, Gato y Perro. Los dos últimos son animales a un nivel alto de abstracción (Animal) pero diferentes a un nivel inferior
15. Polimorfismo (2) Esto, permite olvidarse de ciertas características específicas de varios objetos para centrarse en lo que tengan en común.
16. Pensar en Objetos Pensar en términos de objetos, es muy parecido a como lo haríamos en la vida real. Por ejemplo, pensemos en un coche para tratar de visualizarlo en un esquema de POO.
17.
18. Ciclo de vida de los objetos Creación: Reserva de memoria Carro c = new Carro (…) Inicialización de atributos Constructores Manipulación Acceso a atributos c.modelo Invocación de métodos c.getModelo() “Destrucción” Al liberar la memoria garbagecollector Ver ejemplo