Practica5 Poo

download Practica5 Poo

of 2

Transcript of Practica5 Poo

  • 7/29/2019 Practica5 Poo

    1/2

    Algoritmos y Programas Ao 2012

    Prctica 5

    1) Codifique en Python la jerarqua de clases descripta en el diagrama UML dado a continuacin, enun modulo llamado modelo. Considere que la implementacin del mtodo comer() en las distintassubclases de Animal consiste en imprimir en pantalla el tipo de alimento que ingiere el animal. Porejemplo, en la clase Araaimprime La araa come insectos.

    Nota: los mtodos getPatas() y setPatas() son concretos o sea tiene implementacin.

    2) Cree una clase llamada TestAnimales en un mdulo llamado test, con las siguientescaractersticas:a) Defina un mtodo de clase llamado main(), en el cual crea una instancia de Araa, otra de

    Gato y una de Pez.b) Declara un mtodo de clase llamado muestraQueCome(animal) que recibe como argumento

    un objeto de tipo Animal. Este mtodo simplemente invoca al mtodo comer() del objeto querecibe como argumento.c) Desde el mtodo main() invoque al mtodo muestraQueCome(animal) envindole como

    argumento cada una de las instancias creadas en el punto a.

    d) Implemente el cdigo necesario para que se ejecute el mtodo main() de la claseTestAnimales.

    e) Qu mtodos comer() fueron invocados en cada caso? Se aplic el concepto dePolimorfismo?

    3) Defina las siguientes clases con los siguientes atributos y mtodos:

    Agregue los mtodos getters ysetters para cada uno de sus

    atributos.

    Agregue los mtodos getters ysetters para cada uno de susatributos.

    Animal

    - patas : int

    + Animal(patas: int)+ comer()+ getPatas : int+setPatas(patas :int)

    Araa

    + Araa ()+ comer() : void

    Gato

    + Gato()+ comer() :void

    Pez

    + Pez()+ comer() :void

    Empleado

    - nombre: String

    - domicilio: String

    - legajo: String

    - cargo: String

    +getNombre(): String

    +setNombre(String n): void

    Jefe

    - nombre: String- domicilio: String

    - legajo: String

    - departamentoAcargo: String

    - cantidadEmpleados: int

    +getNombre(): String

    +setNombre(String n): void

  • 7/29/2019 Practica5 Poo

    2/2

    Algoritmos y Programas Ao 2012

    4) Redefina las clases Empleado y Jefe de modo que Jefe sea una subclase de Empleado y estaltima sea subclase de Persona, codificada en la prctica anterior. Implemente en todas las clasesel mtodo__str__() de modo que retorne un texto con la informacin correspondiente al objeto.Nota: Tenga en cuenta aspectos de reutilizacin de cdigo utilizando la sobre-escritura.

    5) Implemente un programa que lea del teclado el datos de 5 empleados y 5 jefes, cree las instancias

    necesarias de cada clase, las complete con los datos ledos anteriormente y luego imprima todaslas ellas usando la sentencia print.

    6) Declare la clase Mascotaen un mdulo llamado domestico, dada la siguiente definicin:

    a) Modifique las clases Gato y Pez paraque sean subclases de Mascota.b) El mtodojugar() imprimir en pantalla el tipo de animal est invocando al mtodo (por ejemplo:

    Gato.jugar() o Pez.jugar()).

    7) Codifique la clase TestAnimalesDomesticos para probar las implementaciones de Mascota, de

    acuerdo a las siguientes indicaciones:a) Codifique un mtodo de clase llamado miMascota(Mascota) que recibe como parmetro unobjeto de tipo Mascota. La implementacin de este mtodo consiste en invocar al mtodogetNombre() yjugar() del objeto que recibe como parmetro. Imprima en pantalla el nombre dela mascota.

    b) El mtodo main() crea un arreglo de tipo Mascotaque contiene 2 instancias de Pez, y 2 deGato. Luego, recorre iterativamente el arreglo e invoca al mtodo miMascota() pasndole comoparmetro cada uno de los elementos del arreglo.

    c) El mtodojugar() es polimrfico porqu?

    8) Defina una superclase de nombre FiguraGeometricapara Linea, Circulo y Rectangulo delejercicio 9 de la prctica anterior. Dicha clase contendr los aspectos comunes a las tres figurasgeomtricas y aspectos propios de dicha clase.

    9) Modifique la aplicacin que grafica figuras geomtricas codificada en el ejercicio 10 de la prcticaanterior, de tal manera que el dibujo de las mismas sea polimrfico.

    10) Responda las siguientes preguntas acerca de la sobrecarga de operadores:a) Qu es la sobrecarga de operadores?b) En Python cules son los mtodos que hay que implementar para proveer sobrecarga de

    operadores?

    c) Es posible implementar una solucin para la aritmtica imaginaria con sobrecarga deoperadores en Python? En caso afirmativo implemntela.

    Mascota

    - propietario: Persona

    + getNombre(): String+ setNombre(nom : String): void+ jugar(): void

    Persona

    - nombre: String

    - domicilio: String

    - ocupacion: String

    - edad: int

    + getApellido(): String+ setApellido(ape : String): void+ getNombre(): String+ setNombre(nom : String): void+ getOcupacion(): String+ setOcupacion(ocu : String): void+ getEdad(): int+ setEdad(edad : int): void