Vous êtes sur la page 1sur 12

Ejemplo Electrodomésticos

Carlos Andrés Ardila


carlosardila@dicosoftware.com

Juan Pablo Ramírez


juanramirez@dicosoftware.com

http://www.dicosoftware.com/contenidoCurso.html
Electrodomésticos
Pasos del ejemplo:
Electrodomésticos
Pasos del ejemplo: 1. Superclase

• Crear clase abstracta Electrodoméstico


– Posee atributos generales para todos los
electrodomésticos.
• Marca: cadena
• Nombre: numérico
• Color: cadena
• Codigo de barras: cadena
– Posee un método abstracto que debe ser
implementado por las clases hijas
• Calcular valor
Electrodomésticos
Pasos del ejemplo: 2. Subclases
• Crear Las subclases:
– Pantalla
• Resolución: numérico
• Tipo: cadena
• Pulgadas: numérico
• Es de plasma: booleano
– Equipo de sonido
• Número de bandejas de CD: numérico
• Número de bafles:numérico
• Potencia:numérico
• Tiene MP3: booleano
– Nevera
• Volumen: numérico
• Altura: numérico
• nofrost: booleano
– Teléfono
• Es inalámbrico: booleano
• Tiene identificador: booleano
• Alcance: numérico
Electrodomésticos
Pasos del ejemplo: subclases

• Encapsulación
– Superclase y cada subclase con atributos
privados
– Accesos (get y set para cada atributo)
• Herencia
– Cada subclase debe heredar de
Electrodoméstico.
• Polimorfismo
– Cada subclase debe implementar el calcular
valor según sus características (estado)
Electrodomésticos
Pasos del ejemplo: 3. Inventario
• Crear clase inventario con un array de
electrodomésticos
– Método agregar elemento.
– Método calcular valor total.
• Relación de composición:
– Relación HAS-A: un inventario se compone de muchos
elementos electrodomésticos.
• Se define una constante para el tamaño
• Se define el array de Electrodomésticos
– Declaración
– Construcción (instanciación)
– Inicialización (asignación)
Electrodomésticos
Pasos del ejemplo: 4. Relación con el usuario

• Crear método que pide los datos de cada


electrodoméstico y lo ingresa al inventario.
– Se crea el objeto (instanciación)
– Usuario digita cada dato
– Validación del ingreso
– Setea cada dato al objeto
– Después de pedir todos los datos, agrega al
inventario.
– Una función por cada electrodoméstico
• Cómo se podría mejorar?
Electrodomésticos
Pasos del ejemplo: 5. Imprimir inventario
• En el inventario:
– Crear método que devuelve la descripción de
TODOS los electrodomésticos.
– Recorre todos los elementos, adiciona cada uno
de los valores del objeto:
Electrodoméstico: Teléfono \n
Características: Es inalámbrico, no tiene identificador, tiene
alcance de 500 \n
– Cada objeto determinar el tipo con el operador
instanceof:
If(electrodomesticos[0] instanceof Pantalla){
//concatena datos de la pantalla
}
Electrodomésticos
Pasos del ejemplo: imprimir inventario

• Qué se necesita:
– Recorrido de array
– Verificación de existencia del objeto con el
operador null.
– Concatenación de cadenas con el operador +
– Detectar el tipo de objeto con instanceof
– Hacer un cast de un electrodoméstico a su tipo
determinado:
Pantalla objPantalla = (Pantalla) electrodomestico[0];
– El cast es necesario para acceder a los atributos
específicos de cada objeto.
Electrodomésticos
Pasos del ejemplo: 6. Imprimir inventario (Mejora)
• Mejoremos el método con polimorfismo:
– En la clase padre y en las subclases sobre escribir el
método toString()
– En la clase padre, que devuelva las características
comunes.
– En las subclases, que adicione el nombre del objeto y las
características propias.
• Qué se necesita:
– Concatenación de cadenas con el operador +
– Acceso al método de la clase padre con el operador
super.
Electrodoméstico: (Nombre del Electrodoméstico) \n
Características: (llamado para imprimir las del padre)
(imprime las del objeto hijo) \n
Electrodomésticos
Pasos del ejemplo: 7. Relación con el usuario (Mejora)

• Mejorar la relación con el usuario:


– Crear interface ComunicacionUsuario
– Métodos: (contrato)
• public String pedirDatoDeUsuario(String strNombreDato);
• public void imprimirMensaje(String strMensaje, String strTitulo);
• public void imprimirError(String strMensaje, String strTitulo);

– Crear una implementación


– Utilizarla en la clase GUI
• Reduce el acoplamiento de la clase GUI
Electrodomésticos
Pasos del ejemplo: Relación con el usuario