Sunteți pe pagina 1din 3

Clases Abstractas

Algoritmos y Lenguajes I

1. Seleccione la afirmacin correcta que explica la relacin que se ilustra a continuacin entre las clases A y B.
1..*

a. La relacin es bidireccional, una instancia de la clase A se relaciona con una o muchas instancias de la clase B y cada instancia de la clase B, se relaciona exactamente con una instancia de la clase A. b. La afirmacin a sera la correcta si no se hubiera pintado el 1 como cardinalidad de la relacin que existe de B hacia A. c. La relacin es bidireccional, una instancia de la clase A se relaciona con muchas instancias de la clase B y cada instancia de la clase B, puede relacionarse con cero o una instancia de la clase A. d. La grfica de la relacin no es correcta. 2. Para cada una de las siguientes afirmaciones indique si es falsa o verdadera, en caso de ser falsa, justifique su respuesta. a. En java, todas las clases tienen una clase padre llamada Object. Esta herencia es obligatoria, no es necesario indicar en el encabezado de las clases esta relacin de herencia con la palabra reservada extends. b. Dada una clase llamada Animal con un atributo nombre:String y el constructor como su nico mtodo, y una clase llamada Reptil que hereda de Animal, es cierto que si la clase Reptil necesita conocer el nombre del animal desde uno de sus mtodos puede hacer referencia directa al atributo nombre que define la clase padre. Esta es precisamente una de las grandes ventajas de la herencia. c. Una de las principales ventajas de la herencia en la programacin orientada a objetos, es el hecho de poder definir en una clase padre atributos y mtodos comunes a un conjunto de clases hijas. Si los objetos a crear son del tipo de las clases hijas nicamente, entonces la clase padre debe ser una clase abstracta. d. Un mtodo abstracto es un mtodo que se define en una clase abstracta para indicar que las clases que hereden de ella deben definir el mtodo pero cada una debe hacerlo de forma diferente. De esta manera las clases hijas se vern obligadas a implementar el mtodo. e. Un mtodo abstracto es un mtodo que necesariamente debe definirse en una clase abstracta y que no tiene cuerpo. El siguiente cdigo es un ejemplo vlido de un mtodo abstracto: public abstract double calcularPrecio( ) { } f. Si usted debe garantizar que una clase jams podr ser heredada por otras clases, debe utilizar la palabra reservada final en el encabezado de la clase antes de la palabra reservada class.

g. La palabra reservada final se usa nicamente para definir clases que no pueden ser heredadas, usar esta palabra en el encabezado de un mtodo es un error gravsimo. 3. A continuacin se presenta un enunciado de una situacin y el diagrama de clases. Usted debe identificar errores en el diagrama de clases e indicar como podran corregirse. En un almacn se venden diferentes tipos de productos, todos los productos poseen una referencia que los identifica, un nombre, una descripcin y un precio base. En este almacn venden artculos deportivos y productos de belleza; de los artculos deportivos se debe saber adems el nombre del deporte en el que puede ser utilizado y de los artculos de belleza se conoce si es natural o no y una descripcin de su formula. El precio de los productos se calcula dependiendo del tipo: si se trata de un producto deportivo el precio corresponde al precio base menos un descuento del 10%; en cambio, para los productos de belleza, si se trata de un producto natural el precio es el precio base ms un recargo del 15%, si no es natural es el mismo precio base. Tenga en cuenta que no pueden existir dos productos con la misma referencia. El sistema debe permitir la creacin y consulta de productos a partir de la referencia. Diagrama de clases Ejecutable -productos:ArrayList Producto -referencia:int -nombre:String -descripcin:String -precioBase:double

+crearProducto(): void +buscarProducto (): Producto +consultar() : void

+Producto(int,String, String, double) +gets +equals(Producto):boolean

Deportivo -deporte:String

DeBelleza -natural:boolean -frmula:String


+DeBelleza((int,String, String, double,boolean,String)

+Deportivo(String) +getDeporte():String +calcularPrecio():double

+isNatural():boolean +getFrmula():String +calcularPrecio():double

4. La Fundacin Colombiana del deporte requiere una aplicacin orientada a objetos y desarrollada en Java que le permita calcular el valor que debe pagar un equipo deportivo por la inscripcin a la fundacin. El cobro de la inscripcin solo se hace para los equipos de baloncesto y de ftbol. Cuando los equipos se van a inscribir deben indicar su nombre, el nmero de integrantes y el nombre del capitn. De los equipos de baloncesto se guarda adems la categora a la que pertenecen: categora A o categora B. El clculo del valor de la inscripcin se lleva a cabo de forma diferente dependiendo de si se trata de un equipo de ftbol o de baloncesto. Si es de ftbol el valor de la inscripcin corresponde a $25.000 por cada integrante que conforme el equipo; pero si se trata de

un equipo de baloncesto de categora A, el valor a pagar es $30.000 por cada integrante y si es categora B solo debe pagarse $200.000 en total. Recuerde que el sistema debe quedar definido para que pueda almacenar muchos equipos deportivos. Usted debe llevar a cabo el proceso de anlisis (diagrama de clases y descripcin de mtodos) y desarrollar el cdigo Java para dar solucin a la situacin.

S-ar putea să vă placă și