Está en la página 1de 3

TALLER JAVA.

UNIDAD 6

Estudis d'Informàtica i Multimèdia

Taller Java

Unidad 6

Formato de entrega: La entrega se realizará comprimiendo todos los ficheros en un


único ZIP llamado Apellido1Apellido2Nombre_UNIDAD6.zip. El zip contendrá una
carpeta con el código fuente y un fichero Readme.txt dónde se explicarán todas las
incidencias que hayan surgido en la práctica y en general cualquier comentario que
queráis que el corrector tenga en cuenta.
Fecha de entrega: 10/03/2008
Es imprescindible respetar este formato de entrega, la no adecuación a estas
especificaciones puede suponer la no evaluación de la Unidad.

Objetivo: En esta unidad aprenderemos a utilizar la sobrecarga de métodos


(diferentes métodos que utilizan el mismo nombre), utilizar el objeto “this” (objeto
donde se ejecuta el código actual) y los atributos “static” (atributos globales a toda la
clase, no al objecto)
Requisitos previos:
• Evidentemente hace falta haber realizado la unidad anterior (en futuras unidades
daremos dicho requisito como implícito)
• Debéis leer hasta la página 102 del documento “Java como lenguaje de
programación orientado a objetos”, prestando especial atención a: la sobrecarga,
la utilización de “this” y los métodos y variables estátitcas
• Razonad la respuesta en todos los ejercicios.

En esta unidad programaremos una clase llamada Lamp. En cada uno de los
ejercicios ampliaremos esta clase para comprobar como funcionan la sobrecarga, el
uso de “this” y que efecto tienen los atributos estáticos,

Como resultado de esta unidad tenéis que entregar el código fuente de la clase Lamp
(fitchero Lamp.java) resultante después de hacer los tres ejercicios, más un fichero
llamado Readme.txt donde podéis contestar a las preguntas.

El código tiene que estar totalmente comentado con el estilo Javadoc, con toda la
funcionalidad implementada y sin errores de compilación.

En todos los ejercicios tenéis que utilizar la MISMA signatura de métodos que se
indica en el enunciado.

Ejercicio 1

Queremos crear la clase Lamp como representación de un sistema sofisticado de


alumbrado. Nuestro sistema es capaz de dar diferentes niveles de luz. Por ese motivo
creamos la clase Lamp con dos atributos:

1 de 3
TALLER JAVA. UNIDAD 6

 boolean on: que indicará si la luz está encendida o apagada.


 int light: que indicara el nivel de luz (de 0 a 100%).

Podemos encender la luz mediante el método setLight, indicando la cantidad de luz


que queremos recibir. Para ello crearemos el siguiente método:
 void setLight (int light): Si el parámetro light es igual o inferior a cero, la luz está
apagada. Si el valor es más grande que 100, lo utilizaremos como si fuera un
100.

También nos gustaria poder encender la luz indicando el voltaje. El voltaje será un
número de tipo double con valores entre 1.5 i 12.5. Para ello crearemos el siguiente
método :
 void setLight (double voltage): Si el parámetro voltage es inferior a 1.5, la luz
està apagada (light = 0). Si el valor es más grande que 12.5, la luz estará al
100%. El resto de valores intermedios que puede tener el atributo light
dependen del voltaje, y se pueden calcular mediante una regla de 3

Por último queremos saber el estado actual de nuesta luz. Para poder hacerlo,
sobreescribiremos el método String toString () para que devuelva un mensaje del tipo:
Status: ON, Light: 45%

Cuando creamos un nuevo objecto de tipo Lamp, asignaremos a los atributos los
valores por defecto:
 on = false
 light = 0

Como podéis comprobar en este ejercicio hemos sobrecargado el método setLight,


con tipos de parámetros diferentes.

Codificad el método main para que se pueda probar que la sobrecarga funciona
correctamente:
 cread diferentes objetos del tipo Lamp.
 asignad diferentes valores de luz a los objetos utilizando cualquiera de los dos
métodos
 Imprimid por pantalla las informaciones de todos los objetos utilizando el
método toString().

Ejercicio 2

Modificaremos el método main para añadir la creación de un nuevo objeto del tipo
Lamp llamado testLamp y llamaremos a su método setLight utilizando como
parámetro:
 un char
 un integer
 un long
 un Integer
 un String
 un Double
 otro objeto de tipo Lamp.

¿Han funcionado todos los objetos como se esperaba? ¿Funciona la sobrecarga de


manera correcta?

2 de 3
TALLER JAVA. UNIDAD 6

Ahora decidimos que también queremos indicar el nivel de luz de nuestro sistema
utilizando los siguientes niveles predefinidos: “OFF”, “MID”, “FULL”. Por este motivo
creamos un nuevo método:
 void setLight (String command): Si el parámetro command toma como valor
“OFF”, el nivel de luz será 0. Si es “MID”, el nivel de luz será 50 i si es “FULL”,
el nivel de luz será 100. Ignoraremos cualquier otro valor.

Vuelve a repetir las llamadas anteriores al método setLight y razona los resultados
obtenidos.

Ejercicio 3

Volvemos a recuperar los tests que hicimos en el ejercicio 1 y nos guardamos los
resultados para poder hacer un análisis posterior.

Ahora modificamos el atributo light de la clase Lamp de manera que sea de tipo static.

Volvemos a realizar el mismo test i comparamos los resultados obtenidos. Explicad


que ha pasado y que uso se puede dar a los atributos estáticos.

3 de 3

También podría gustarte