12
Ejemplo Electrodomésticos Carlos Andrés Ardila [email protected] Juan Pablo Ramírez [email protected] http://www.dicosoftware.com/contenidoCurso.html

Algoritmia Ejemplo electrodomesticos

Embed Size (px)

Citation preview

Page 1: Algoritmia Ejemplo electrodomesticos

Ejemplo Electrodomésticos

Carlos Andrés Ardila

[email protected]

Juan Pablo Ramírez

[email protected]

http://www.dicosoftware.com/contenidoCurso.html

Page 2: Algoritmia Ejemplo electrodomesticos

ElectrodomésticosPasos del ejemplo:

Page 3: Algoritmia Ejemplo electrodomesticos

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

Page 4: Algoritmia Ejemplo electrodomesticos

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

Page 5: Algoritmia Ejemplo electrodomesticos

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)

Page 6: Algoritmia Ejemplo electrodomesticos

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)

Page 7: Algoritmia Ejemplo electrodomesticos

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?

Page 8: Algoritmia Ejemplo electrodomesticos

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

}

Page 9: Algoritmia Ejemplo electrodomesticos

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.

Page 10: Algoritmia Ejemplo electrodomesticos

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

Page 11: Algoritmia Ejemplo electrodomesticos

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

Page 12: Algoritmia Ejemplo electrodomesticos

ElectrodomésticosPasos del ejemplo: Relación con el usuario