Logo Studenta

Ciclo Vida Objetos

¡Este material tiene más páginas!

Vista previa del material en texto

Ciclo de Vida de los Objetos. 
Creación de Objetos: Instanciación
 Es el mecanismo de creación de objetos.
 Los objetos se instancian a partir de un molde.
 La clase funciona como molde.
 Un nuevo objeto es una instancia de una clase.
 Todas las instancias de una misma clase
 Tendrán la misma estructura interna.
 Responderán al mismo protocolo (los mismos 
mensajes).
Instanciación – uso de new
 Comúnmente se utiliza la palabra reservada new para 
instanciar nuevos objetos.
 Según el lenguaje
 new es un mensaje que se envía a la clase.
 new es una operación especial (keyword).
Inicialización
 Una instancia recién creada …
¿Está lista para poder colaborar con otros objetos?
Una cuenta bancaria recién creada ¿sabe quién es su 
titular?
Objetos Bien Formados
 Existe un tiempo entre:
 La creación de un objeto.
 La adquisición de lo que ese objeto necesita para llevar a 
cabo su función (propiedades y colaboradores).
 Mientras tanto, el objeto está en estado inconsistente.
 ¿Cómo impedimos que esto suceda?
 Inicializar al objeto con valores por defecto.
 No permitir la creación de un objeto a menos que nos 
pasen la información mínima indispensable.
Objetos bien formados
 Podemos crear constructores que tomen parámetros
 Dichos parámetros son las propiedades básicas del 
nuevo objeto.
 Así, creamos objetos bien formados.
 Un objeto bien formado se encuentra en estado 
consistente desde su creación.
 Podemos también prohibir que se usen constructores 
sin parámetros, impidiendo la creación de objetos en 
estado inconsistente.
Objetos bien formados
 Con estos constructores favorecemos
 La legibilidad (la creación de objetos complejos se 
realiza en un solo paso).
 La documentación (aquél que quiera crear nuevos 
objetos ya sabe cómo hacerlo).
Destrucción de Objetos
 ¿Cuándo un objeto deja de ser necesario?
 ¿Quién se encarga de detectar este evento y qué 
debería hacer al respecto?
 ¿El programador?
Garbage Collection
 El manejo manual de memoria es una tarea compleja y 
propensa a errores.
 Los lenguajes OO de alto nivel usualmente incluyen un 
mecanismo llamado Garbage Collection.
 Detecta los objetos que ya nadie conoce y libera la memoria 
que ocupaban.
 Es automático.
 Es seguro.
 Es transparente (corre en background).
 Algunas desventajas
 No puede utilizarse en sistemas de tiempo real.
 Los primeros garbage collectors tenían un overhead
importante.
Garbage Collection
 NO evita la existencia de memory leaks
 A veces el GC corre en momento “inapropiados“
 Por lo general existen mecanismos para invocarlo 
manualmente/sincrónicamente
1er Programa “Hola Mundo”. 
public class Saludo {
private String Texto;
//Constructor recibe la frase con la que saludaremos
public Saludo(string pTexto) {
Texto = pTexto;}
public int Saludar() {return Texto;}
}
Public class Inicio {
public static void main(String[] args) {
// Intancia el Objeto Saluda, pasa como parámetro el texto del saludo
Saluda oSaluda= new Saluda(“Hola Mundo”); 
System.out.println(oSaluda.saludar());
Subclasificación, Herencia y 
Polimorfismo. 
Representación de Conocimiento
 Una clase representa un concepto en el dominio de 
problema.
 Usamos las clases para representar parte del 
conocimiento que adquirimos del dominio de 
problema.
 ¿Qué sucede cuando las clases comparten parte del 
conocimiento al cual representan?
Subclasificación
Subclasificación
 Se reúne el comportamiento y la estructura común en 
una clase, la cual cumplirá el rol de superclase.
 Se conforma una jerarquía de clases.
 Luego otras clases pueden cumplir el rol de subclases, 
heredando ese comportamiento y estructura en 
común.
 Cumple la relación es-un.
Ejemplo de una Jerarquía de Clases
 Existen dos tipos de cuentas bancarias:
 Cuentas corrientes.
 Cajas de ahorro.
 Si revisamos el comportamiento nos encontraremos 
con las siguientes características en común:
 Ambas llevan cuenta de su saldo.
 Ambas permiten realizar depósitos.
 Ambas permiten realizar extracciones.
Ejemplo de una Jerarquía de Clases
 Pero cada una tiene un tipo de restricción distinto en 
cuanto a las extracciones:
 Cuentas corrientes: permiten que el cliente gire en 
descubierto (con un tope pactado con cada cliente).
 Cajas de ahorro: poseen una cantidad máxima de 
extracciones mensuales (para todos los clientes). No se 
permite girar en descubierto.
 ¿Cómo podemos reutilizar las características en 
común?
Ejemplo de una Jerarquía de Clases
Relación es-un
 En toda jerarquía de clases, se debe respetar la relación 
es-un entre una clase y su superclase.
 Por ejemplo
 Una caja de ahorro es-una cuenta bancaria.
 Un círculo es-una figura.
 Una figura es-un objeto …
Ejercicio – Subclasificación
 ¿Es correcta la siguiente jerarquía?
Herencia
 Es el mecanismo por el cual las subclases reutilizan el 
comportamiento y estructura reunido en sus 
superclases.
 La herencia permite:
 Crear una nueva clase como refinamiento de otra.
 Diseñar e implementar sólo la diferencia que presenta la 
nueva clase.
 Abstraer las similitudes en común.
Herencia
 Herencia de comportamiento
 Una subclase hereda todos los métodos definidos en su 
superclase.
 Las subclases pueden redefinir el comportamiento de su 
superclase.
 Herencia de estructura
 No hay forma de restringirla.
 No es posible redefinir el nombre de un atributo que se 
hereda.
Method Lookup
 Al enviarse un mensaje a un objeto deben suceder 2 
cosas:
 Determinar cual es la clase del objeto.
 Buscar el método para responder al envío del mensaje en 
la jerarquía, comenzando por la clase del objeto, y 
subiendo a la superclases hasta llegar a la clase raíz.
 Esto se denomina method lookup
Method Lookup
Polimorfismo
 Dos o más objetos son polimórficos con respecto a un 
mensaje, si todos pueden entender ese mensaje, aún 
cuando cada uno lo haga de un modo diferente.
 Mismo mensaje puede ser enviado a diferentes objetos.
 Distintos receptores reaccionan diferente (diferentes 
métodos).
Ejemplo Cuentas Bancarias
 El usuario necesita extraer de su cuenta por medio de 
un cajero automático.
Que pasaría sin Polimorfismo?
 Veamos el siguiente método.
 ¿Qué problema presenta?
 ¿Qué sucede si aparece un nuevo tipo de cuenta,
 digamos CuentaLibre?
Que pasaría sin Polimorfismo?
 Hay que modificar el Código
 Si delegamos el código en cada cuenta el método sería
Ventajas del uso del Polimorfismo
 Código genérico.
 Objetos desacoplados.
 Objetos intercambiables.
 Objetos reutilizables.
El problema del “if”
 El if es a la Programación Orientada a Objetos lo que 
el goto era para la Programación Estructurada.
 Los lenguajes OO proveen if pero...
 If significa la falta de objetos polimórficos.
 Las decisiones son tomadas por los programadores.
 Mala asignación de responsabilidades.
 ¿Cuándo se justifica su uso?
 En comparaciones simples.
El problema del “if”
 Entonces… ¿cómo podemos saber en que caso es correcto 
utilizar un if?
 Generalmente, si la condición a evaluar 
 No depende del receptor del mensaje.
 No se ve alterada en el caso de agregar nuevos tipos de objeto.
 Entonces el uso es correcto.
 Si la condición a evaluar
 Depende del receptor del mensaje.
 Crece al agregar nuevos tipos de objeto.
 El uso es incorrecto.
Ejercicio:
Dado el enunciado descripto abajo enuncie los objetos que puede identificar en él.
Describa textualmente el comportamiento esperable de cada objeto. Genere una lista 
de mensajes que cada objeto deberá entender. 
Un Ipod es un reproductor de medios. Reproduce música, fotos y video. El Ipod presenta 
al usuario la lista de elementos que se pueden reproducir. Todos los elementos tienen 
un nombre. Cuando el usuario opera el Ipod selecciona algún medio, por ejemplo una 
canción, luego presiona el botón de play. En cualquier momento el usuario puede 
decidir detener la reproducción,utilizando el botón stop.
Responda:
1. ¿Encuentra objetos que puedan ser organizados en una jerarquía? Si es así 
organícelos jerárquicamente.
2. ¿Qué comportamiento en común tienen?
3. Cuando el usuario enciende el Ipod y este tiene que presentar la lista de elementos 
que se pueden reproducir, qué objetos interactúan?
4. Liste al menos 2 mensajes que cada objeto deba entender.

Continuar navegando

Materiales relacionados

34 pag.
POO1-2006 - Laura Rentería

User badge image

Desafio PASSEI DIRETO

25 pag.
Subclasificacion, Herencia,,

UNAM

User badge image

CeciliaSantillana