Upload
orlando-correa-martinez
View
351
Download
1
Embed Size (px)
Citation preview
Ejemplo Electrodomésticos
Carlos Andrés Ardila
Juan Pablo Ramírez
http://www.dicosoftware.com/contenidoCurso.html
ElectrodomésticosPasos del ejemplo:
ElectrodomésticosPasos del ejemplo: 1. Superclase
• Crear clase abstracta Electrodoméstico
– Posee atributos generales para todos loselectrodomé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ésticosPasos 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ésticosPasos 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ésticosPasos 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ésticosPasos 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ésticosPasos 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ésticosPasos 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ésticosPasos 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ésticosPasos 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ésticosPasos del ejemplo: Relación con el usuario