Publicado el 23 de Marzo del 2021
787 visualizaciones desde el 23 de Marzo del 2021
515,7 KB
44 paginas
Creado hace 12a (13/04/2013)
INTERACCION ENTRE
OBJETOS
Corina Flores Villarroel
UMSS - Programa MEMI
Corina Flores V.
Programa MEMI
Contenido
Este capítulo se discutirán conceptos
relacionados con:
• Abstracción y encapsulamiento,
• Modularización, composición
• Creación de objetos,
• Diagramas de objetos,
• Llamadas a métodos,
• Depuradores
Corina Flores V.
Programa MEMI
Contenido
1. El ejemplo de las fechas
2. Abstracción y modularización
3. Diagramas de clases
4. Diagramas de objetos
5. Tipos primitivos
6. Tipos objeto Objetos que crean objetos
7. Constructores múltiples
8. Métodos públicos vs. privados
Corina Flores V.
Programa MEMI
Introducción
Hasta el momento … ya sabemos! qué son los
objetos, cómo se implementan, así también
conocemos qué es un campo (datos de un obj.),
constructores y métodos.
En este capítulo nos ocuparemos de construir
aplicaciones interesantes, en el que será preciso la
participación de objetos entre sí, de manera que
combinados puedan cooperar para ejecutar tareas
comunes.
Corina Flores V.
Programa MEMI
Características asociadas
Las caracteristicas asociadas a POO se traducen en:
Abstracción
Encapsulación
Ocultamiento
Modularización
Corina Flores V.
Programa MEMI
Características asociadas
Abstracción:
Consiste en captar las características
esenciales de un objeto, así como su
comportamiento.
Por ejemplo, veamos un
celular …
¿Qué características
podemos abstraer de los
celulares?
O lo que es lo mismo …
¿Qué características
semejantes tienen todos los
celulares?
Corina Flores V.
Programa MEMI
Características asociadas
Y en cuanto a su comportamiento…
Por ejemplo, veamos un
celular …
¿Qué tareas pueden realizar
los celulares?
O lo que es lo mismo …
¿Qué tareas semejantes saben
hacer todos los celulares?
Corina Flores V.
Programa MEMI
Características asociadas
En los lenguajes de programación orientada a
objetos, el concepto de Clase es la representación y
el mecanismo por el cual se gestionan las
abstracciones.
Por ejemplo, en Java tenemos:
public class Celular {
// atributos
// métodos
}
Corina Flores V.
Programa MEMI
Características asociadas
Encapsulación:
Consiste en unir en la Clase las
características y comportamientos,
esto es, los atributos y métodos.
Es tener todo esto es una sola entidad.
Celular
Marca
Modelo
Pantalla
Llamar()
Enviar_mensaje()
Colgar()
Corina Flores V.
Programa MEMI
Encapsulación en tiempo
de desarrollo
Características asociadas
Encapsulación:
La utilidad del encapsulamiento va por
la facilidad de manejar la complejidad,
ya que tendremos a las Clases como
cajas negras, donde sólo se conoce el
comportamiento (interfaz publica)
pero no los detalles internos.
Encapsulación en tiempo
de ejecución.
Corina Flores V.
Programa MEMI
Características asociadas
Encapsulación:
Es un mecanismo de control. Los datos
de un objeto, sólo pueden modificarse
por medio de los metodos de ese
objeto.
Entonces, …
1. La modificación de un atributo o campo debe
realizarse por medio de un método.
2. La consulta del valor de un atributo o campo
debe tambien realizarse por medio de un
método especialmente destinado a esto
Corina Flores V.
Programa MEMI
Características asociadas
Por ej.: Si desariamos modificar de marca el celular, tendriamos
un método como …
public void setMarca(String m){
Marca = m;
}
Y si quisieramos consultar la marca del celular, tendriamos que
tener un metodo como…
public String getMarca(){
return Marca;
}
Programa MEMI
Corina Flores V.
Características asociadas
Ocultamiento:
Es la capacidad de ocultar los detalles
internos del comportamiento de una
Clase y exponer sólo los detalles que
sean necesarios para el resto de las
clases.
El ocultamiento permite 2 cosas:
1. Restringir y controlar el uso de una clase (algunos
comportamiento privados).
2. Validar algunas condiciones antes de modificar el
estado de un objeto.
En Java el ocultamiento se logra usando las palabras reservadas:
private y protected delante de las atributos y métodos.
Corina Flores V.
Programa MEMI
El ejemplo de la fecha
Se desea mostrar una fecha en la pantalla teniendo
en cuenta el siguiente formato:
DD/MM/AAAA
Dia
Mes
Año
Corina Flores V.
Programa MEMI
Abstracción
La fecha, con el formato especificado…
¿puede ser implementado con una sola
clase?
SI!
Sin embargo, …
analizaremos antes el
problema para ver su complejidad.
Corina Flores V.
Programa MEMI
Abstracción
La complejidad es parte inherente de los programas,
tratarlos es IMPORTANTE!
El hombre está seriamente limitado para tratar la
complejidad. Puede tener en mente 7 asuntos ó
elementos simultáneamente.
Sin embargo, cualquier tipo de problema, excepto los más
simples, manejan más de 7 elementos. ¿Qué hacer?
Solución!! … agrupar elementos relacionados y manejar
éstos en grupos como una sola unidad.
Corina Flores V.
Programa MEMI
Modularización
Proceso de dividir un todo en partes
bien definidas que pueden ensamblarse
y examinarse separadamente, y que
interaccionan en formas bien definidas
Modularización
• Cada parte se denomina módulo.
• El mecanismo principal de modularización en la
Programación Orientada a Objetos es la clase
Corina Flores V.
Programa MEMI
Modularización
¿Cuándo es útil aplicar modularización?
1. Cuando existe un grupo de instrucciones o una tarea específica
que deba ejecutarse en más de una vez.
2. Cuando un problema es complejo o extenso, la solución se
“divide” o “segmenta” en módulos que ejecutan “partes” o tareas
específicas. Dicha solución se organiza de forma similar a como
lo hacen las empresas cuando se estructuran con base en las
funciones para realizar sus actividades
Existe un módulo directivo o de control, que se encarga
de distribuir el trabajo a los demás módulos
Corina Flores V.
Programa MEMI
Composición
Permite que la clase “todo” controle la
existencia de las “parte”.
Es decir … la clase todo creara al
principio las clases parte.
Composición
Cada parte colabora entre si.
Y todas completan el trabajo.
Corina Flores V.
Programa MEMI
Modularizando: Problema de la fecha
• Veamos cómo esta formada
18 Marzo
2011
Se observa que esta
compuesto
por tres partes
El dia
El mes
El año
Corina Flores V.
Programa MEMI
Modularizando: Problema de la fecha
• El dia, se desplaza entre 1 a 31,o 1 a 30 o 1 a 28-29
… dependiendo del mes que se trate.
• El mes, en cambio de 1 a 12
• El año, se representa con cuatro digitos por ejemplo:
1999 …
El problema se puede resolver con una clase
que represente un contador con límite.
Para cada contador se puede crear
una instancia de la clase
Corina Flores V.
Programa MEMI
Modularizando: Problema de la fecha
• Comencemos dibujando el modelo de la clase que
nos permitirá abstraer la representación.
Dia
public class Dia
{
private int limiteDia;
private int valor;
… // constructores y métodos
}
Corina Flores V.
Programa MEMI
Modularizando: Problema de la fecha
• Podemos completar la fecha, teniendo en cuenta a
éste como un objeto que tiene internamente tres
números (dia, mes,año).
• Entonces, cada uno puede ser un campo de la fecha
Mes
de esta manera.
Dia
public class Mes
{
private Dia dia;
private Dia mes;
private String mensaje;
private String nombreMes;
… // constructores y métodos
}
Corina Flores V.
Programa MEMI
Modularizando: Problema de la fecha
MM
DD
public class Mes
{
private Dia dia;
private Dia mes;
private String mensaje;
… // constructores y métodos
}
Tipo de
dato
Campos
1. Nombre de una clase puede ser usado como tipo
2. Si el tipo de un campo es una clase, entonces el
campo puede contener objetos de esa clase.
Corina Flores V.
Programa MEMI
Sobrecarga de constructores
• Cuando dos o más constructores tienen el mismo
nombre pero diferentes parámetros.
El compilador decide qué constructor invocar
dependiendo de los parámetros usados
public Mes()
{
dia = new Dia(); //31
mes = new Dia(); //12
actualizarMensaje();
}
public Mes(int dia1, int mes1)
{
dia = new Dia();
mes = new Dia();
setFecha(dia1, mes1);
}
Corina Flores V.
Programa MEMI
Diagrama de clases
• Diagrama de clase: muestra las clases y sus
relaciones - vista estática de la aplicación: en
edición.
Corina Flores V.
Programa MEMI
Diagrama de objetos
• Diagrama de objetos: muestra los objetos y sus
relaciones - vista dinámica de la aplicación: en
ejecución.
public Mes(Dia d)
{
dia = d;
limiteMes = 12;
valorMes = 0;
actualizarMensaje();
}
12
: Dia
Mes1: Mes
dia
Cuando su tipo de una variable o campo es de tipo
objeto, el valor no se almacena en el espacio de la
variable o campo - se almacena una referencia al
objeto que tiene su propio espacio
Corina Flores V.
Programa MEMI
Paso de parámetros a métodos …
Dos tipos:
1. Paso por valor:
Cuando, se realiza una copia de los valores que se pasan
en los parámetros, con los cuales se trabaja dentro del
método. Es por ello que cualquier cambio que sufran
dentro, no repercute fuera del método.
2. Paso por referencia:
No realiza copia, solo se pasa una referencia
al objeto,
Comentarios de: Interaccion entre objetos (0)
No hay comentarios