• No se han encontrado resultados

Ejercicios propuestos y resueltos programación orientado a objetos Java _ Disco Duro de Roer.pdf

N/A
N/A
Protected

Academic year: 2021

Share "Ejercicios propuestos y resueltos programación orientado a objetos Java _ Disco Duro de Roer.pdf"

Copied!
10
0
0

Texto completo

(1)

Buscar ¡Contacta con nosotros desde Skype! Pincha en la imagen para obtener mas información

20

2013

Ejercicios propuestos y resueltos

programación orientado a objetos Java

Hola a todos, hoy os dejo una serie de ejercicios de Java para practicar todo aquello que hemos explicado en anteriores posts, haciendo hincapié en la programación orientada a objetos. Todos los ejercicios que proponemos están resueltos en este mismo post, intenta hacerlo por ti mismo y si te quedas atascado puedes mirar la solución. Recuerda, que no tiene por que estar igual tu solución con la del post, el objetivo es que aprendas no que me copies la solución. Crea un proyecto en Java por ejercicio. Colocare en las soluciones algunos comentarios para que sean más fácilmente entendibles. Acostúmbrate a usar Javadoc. Te recomiendo que uses mensajes de trazas, donde te sean necesarios. Si tienes problemas también puedes usar el depurador. Aquí tienes todos los posts relacionados con Java: Introduccion Convención de nombres Comentarios Variables primitivas Constantes Operadores Entrada y salida de datos Ámbito de una variable String Métodos String Casting Métodos Math Generar un número aleatorio con Math.random Estructura condicional Estructura repetitiva Mensajes de traza Pasar de String a distintos tipos de datos en Java Caracteres de Escape API Java Métodos Java Arrays en Java Bucles anidados Arrays en métodos en Java DIC Busca lo que necesites en la web Anuncios

Curso Programacion Java

Online, Videos, Foros, Profesor. Por Sólo US$198 Inscríbete Ahora!

¿Toma estatinas?

Estudio de investigación. Más información aquí. ¡Síguenos en las redes sociales! Skype

Di

s

c

o

D

u

r

o d

e

R

oe

r

Deja de golpear a tu ordenador y soluciona tus problemas aquí

(2)

Si quieres agradecer nuestro trabajo de alguna forma, puedes hacerlo invitándonos a un café.   Como utilizar Filezilla Client Posicionamiento CSS Convención de nombres en Java Estilo de escritura de algoritmos y programas Polimorfismo Java Referencias en Java Arrays multidimensionales Métodos java.util.Arrays Java Formas de ordenar un array en Java Introducción a la programación orientada a objetos Variable this Sobrecarga de métodos y constructores Método toString Operador instanceof Array de Objetos Comparación de objetos Java Clases abstractas Interfaces Uso de constantes en Java Métodos y atributos estáticos Polimorfismo Java Modificadores de acceso Clases y métodos finales Métodos get y set Herencia Java Como utilizar Javadoc También incluyo los posts relacionados con eclipse. Como usar Eclipse Juno Instalar y desinstalar plugins en Eclipse Como traducir Eclipse a Español Si tienes alguna duda, recuerda que puedes consultarnos escribiendo un comentario en este post o enviándonos un e­mail a [email protected] 1) Haz una clase llamada Persona que siga las siguientes condiciones:

Sus  atributos  son:  nombre,  edad,  DNI,  sexo  (H  hombre,  M  mujer),  peso  y  altura.  No  queremos que  se  accedan  directamente  a  ellos.  Piensa  que  modificador  de  acceso  es  el  más  adecuado, también su tipo. Si quieres añadir algún atributo puedes hacerlo.

Por  defecto,  todos  los  atributos  menos  el  DNI  serán  valores  por  defecto  según  su  tipo  (0  números, cadena vacía para String, etc.). Sexo sera hombre por defecto, usa una constante para ello. Se implantaran varios constructores: Un constructor por defecto. Un constructor con el nombre, edad y sexo, el resto por defecto. Un constructor con todos los atributos como parámetro. Los métodos que se implementaran son:

calcularIMC():  calculara  si  la  persona  esta  en  su  peso  ideal  (peso  en  kg/(altura^2    en  m)), devuelve un ­1 si esta por debajo de su peso ideal, un 0 si esta en su peso ideal y un 1 si tiene sobrepeso .Te recomiendo que uses constantes para devolver estos valores. esMayorDeEdad(): indica si es mayor de edad, devuelve un booleano. comprobarSexo(char sexo): comprueba que el sexo introducido es correcto. Si no es correcto, sera H. No sera visible al exterior. toString(): devuelve toda la información del objeto. Donación Manuales aleatorios Traffic­Club Contador de visitas

(3)

generaDNI(): genera un numero aleatorio de 8 cifras, genera a partir de este su número su letra correspondiente.  Este  método  sera  invocado  cuando  se  construya  el  objeto.  Puedes  dividir  el método para que te sea más fácil. No será visible al exterior. Métodos set de cada parámetro, excepto de DNI. Ahora, crea una clase ejecutable que haga lo siguiente: Pide por teclado el nombre, la edad, sexo, peso y altura. Crea 3 objetos de la clase anterior, el primer objeto obtendrá las anteriores variables pedidas por teclado, el segundo objeto obtendrá todos los anteriores menos el peso y la altura y el último por defecto, para este último utiliza los métodos set para darle a los atributos un valor. Para cada objeto, deberá comprobar si esta en su peso ideal, tiene sobrepeso o por debajo de su peso ideal con un mensaje. Indicar para cada objeto si es mayor de edad. Por último, mostrar la información de cada objeto. Puedes usar métodos en la clase ejecutable, para que os sea mas fácil.

Spoiler

Seleccionar Mostrar

2) Haz una clase llamada Password que siga las siguientes condiciones: Que tenga los atributos longitud y contraseña . Por defecto, la longitud sera de 8. Los constructores serán los siguiente: Un constructor por defecto. Un constructor con la longitud que nosotros le pasemos. Generara una contraseña aleatoria con esa longitud. Los métodos que implementa serán: esFuerte(): devuelve un booleano si es fuerte o no, para que sea fuerte debe tener mas de 2 mayúsculas, mas de 1 minúscula y mas de 5 números. generarPassword():  genera la contraseña del objeto con la longitud que tenga. Método get para contraseña y longitud. Método set para longitud. Ahora, crea una clase clase ejecutable: Crea un array de Passwords con el tamaño que tu le indiques por teclado. Crea un bucle que cree un objeto para cada posición del array. Indica también por teclado la longitud de los Passwords (antes de bucle).

Crea  otro  array  de  booleanos  donde  se  almacene  si  el  password  del  array  de  Password  es  o  no fuerte (usa el bucle anterior).

Al final, muestra la contraseña y si es o no fuerte (usa el bucle anterior). Usa este simple formato: contraseña1 valor_booleano1

contraseña2 valor_bololeano2 …

Spoiler

Seleccionar Mostrar

(4)

Sus atributos son precio base, color, consumo energético (letras entre A y F) y peso. Indica que se podrán heredar. Por defecto, el color sera blanco, el consumo energético sera F, el precioBase es de 100 € y el peso de 5 kg. Usa constantes para ello. Los colores disponibles son blanco, negro, rojo, azul y gris. No importa si el nombre esta en mayúsculas o en minúsculas. Los constructores que se implementaran serán Un constructor por defecto. Un constructor con el precio y peso. El resto por defecto. Un constructor con todos los atributos. Los métodos que implementara serán: Métodos get de todos los atributos. comprobarConsumoEnergetico(char letra): comprueba que la letra es correcta, sino es correcta usara la letra por defecto. Se invocara al crear el objeto y no sera visible. comprobarColor(String color): comprueba que el color es correcto, sino lo es usa el color por defecto. Se invocara al crear el objeto y no sera visible. precioFinal(): según el consumo energético, aumentara su precio, y según su tamaño, también. Esta es la lista de precios: Letra Precio A 100 € B 80 € C 60 € D 50 € E 30 € F 10 € Tamaño Precio Entre 0 y 19 kg 10 € Entre 20 y 49 kg 50 € Entre 50 y 79 kg 80 € Mayor que 80 kg 100 € Crearemos una subclase llamada Lavadora con las siguientes características: Su atributo es carga, ademas de los atributos heredados. Por defecto, la carga es de 5 kg. Usa una constante para ello. Los constructores que se implementaran serán: Un constructor por defecto. Un constructor con el precio y peso. El resto por defecto. Un constructor con la carga y el resto de atributos heredados. Recuerda que debes llamar al constructor de la clase padre. Los métodos que se implementara serán: Método get de carga. precioFinal():, si tiene una carga mayor de 30 kg, aumentara el precio 50 €, sino es así no se incrementara el precio. Llama al método padre y añade el código necesario. Recuerda que las

(5)

condiciones que hemos visto en la clase Electrodomestico también deben afectar al precio. Crearemos una subclase llamada Television con las siguientes características: Sus atributos son resolución (en pulgadas) y sintonizador TDT (booleano), ademas de los atributos heredados. Por defecto, la resolución sera de 20 pulgadas y el sintonizador sera false. Los constructores que se implementaran serán: Un constructor por defecto. Un constructor con el precio y peso. El resto por defecto. Un constructor con la resolución, sintonizador TDT y el resto de atributos heredados. Recuerda que debes llamar al constructor de la clase padre. Los métodos que se implementara serán: Método get de resolución y sintonizador TDT. precioFinal(): si tiene una resolución mayor de 40 pulgadas, se incrementara el precio un 30% y si tiene un sintonizador TDT incorporado, aumentara 50 €. Recuerda que las condiciones que hemos visto en la clase Electrodomestico también deben afectar al precio. Ahora crea una clase ejecutable que realice lo siguiente: Crea un array de Electrodomesticos de 10 posiciones. Asigna a cada posición un objeto de las clases anteriores con los valores que desees. Ahora, recorre este array y ejecuta el método precioFinal(). Deberás mostrar el precio de cada clase, es decir, el precio de todas las televisiones por un lado, el de las lavadoras por otro y la suma de los Electrodomesticos (puedes crear objetos Electrodomestico, pero recuerda que Television y Lavadora también son electrodomésticos). Recuerda el uso operador instanceof. Por ejemplo, si tenemos un Electrodomestico con un precio final de 300, una lavadora de 200 y una televisión de 500, el resultado final sera de 1000 (300+200+500) para electrodomésticos, 200 para lavadora y 500 para televisión.

Spoiler

Seleccionar Mostrar

4) Crearemos una clase llamada Serie con las siguientes características: Sus atributos son titulo, numero de temporadas, entregado, genero y creador. Por defecto, el numero de temporadas es de 3 temporadas y entregado false. El resto de atributos serán valores por defecto según el tipo del atributo. Los constructores que se implementaran serán: Un constructor por defecto.

(6)

Un constructor con el titulo y creador. El resto por defecto. Un constructor con todos los atributos, excepto de entregado. Los métodos que se implementara serán: Métodos get de todos los atributos, excepto de entregado. Métodos set de todos los atributos, excepto de entregado. Sobrescribe los métodos toString. Crearemos una clase Videojuego con las siguientes características: Sus atributos son titulo, horas estimadas, entregado, genero y compañia.

Por  defecto,  las  horas  estimadas  serán  de  10  horas  y  entregado  false.  El  resto  de  atributos  serán valores por defecto según el tipo del atributo. Los constructores que se implementaran serán: Un constructor por defecto. Un constructor con el titulo y horas estimadas. El resto por defecto. Un constructor con todos los atributos, excepto de entregado. Los métodos que se implementara serán: Métodos get de todos los atributos, excepto de entregado. Métodos set de todos los atributos, excepto de entregado. Sobrescribe los métodos toString. Como vemos, en principio, las clases anteriores no son padre­hija, pero si tienen en común, por eso vamos a hacer una interfaz llamada Entregable con los siguientes métodos: entregar(): cambia el atributo prestado a true. devolver(): cambia el atributo prestado a false. isEntregado(): devuelve el estado del atributo prestado. Método compareTo (Object a), compara las horas estimadas en los videojuegos y en las series el numero de temporadas. Como parámetro que tenga un objeto, no es necesario que implementes la interfaz Comparable. Recuerda el uso de los casting de objetos. Implementa los anteriores métodos en las clases Videojuego y Serie. Ahora crea una aplicación ejecutable y realiza lo siguiente: Crea dos arrays, uno de Series y otro de Videojuegos, de 5 posiciones cada uno.

Crea  un  objeto  en  cada  posición  del  array,  con  los  valores  que  desees,  puedes  usar  distintos constructores.

Entrega algunos Videojuegos y Series con el método entregar().

Cuenta cuantos Series y Videojuegos hay entregados. Al contarlos, devuélvelos.

Por  último,  indica  el  Videojuego  tiene  más  horas  estimadas  y  la  serie  con  mas  temporadas. Muestralos en pantalla con toda su información (usa el método toString()).

Spoiler

Seleccionar Mostrar

(7)

Como utilizar Javadoc Tipos enumerados en Java Publicarlo en Facebook 37 37 37 37 37 37 37 37 37 Publicarlo en Twitter 1 1 1 1 1 1 1 1 1 Publicarlo en Google+

Otras entradas interesantes:

Ejercicios propuestos y resueltos de ficheros en Java Ejercicios propuestos y resueltos básicos listas enlazadas en Java Ejercicios propuestos y resueltos métodos de Java Ejercicios propuestos y resueltos básicos Java Ejercicios propuestos y resueltos arrays de Java Califica este post (21 Votos)

15 Comments

1   2   »

German

DIC 21, 2013 @ 21:06:18 Excelente articulo, me encantaría que incluyeran alguno avanzado, de tipo diseño orientado a objetos con java, con ejercicios y resueltos. Desde ya gracias y ojala se pueda hacer lo que les comento! 35 Calificar

JOSETXU ELGRAN AUSENTE

ENE 09, 2014 @ 06:35:04 Un saludo, Traffic Club y El Talco Negro. 11

(8)

Calificar

Fran

ENE 18, 2014 @ 14:13:00 Muchas gracias por tú tiempo y tú trabajo me parece genial la forma de enfocar el tema de java y sus ejemplos. Enhorabuena. 32 Calificar

oliver

ENE 28, 2014 @ 19:33:26 En el ejemplo 2, el de la clase Password el compilador da un par de errores que no consigo solventar: 1. Dentro de la clase Password: public Password (){ this(LONG_DEF); } 2. Dentro de la clase ejecutable, dentro del bucle for: listaPassword[i]=new Password(longitud); 31 Calificar

Pikao

ENE 28, 2014 @ 19:59:44 Hola, el primero puede ser porque la clase no la has llamado igual que la clase (deben ser iguales) y el segundo a consecuencia del primero. Si sigues teniendo problemas, puedes enviarme el proyecto a mi direccion de email [email protected] y le echo un ojo. Un saludo y gracias por tu mensaje. 11 Calificar

oliver

ENE 29, 2014 @ 16:15:34 Solucionado. La historia era por el “void” que tenía en el constructor con el parámetro longitud: public void Password (int longitud){ this.longitud = longitud; contraseña = generarPassword(); } que en el constructor sin parámetro no lo tenía: public Password(){ this.longitud = LONG_DEF; } Una vez quitado ese void en el primero ya me compila. Gracias. 20 Calificar

Alejandra

ABR 26, 2014 @ 19:41:00 hola! alguien me podria ayudar a hacer el programa que genera paswords en c++?? la verdad solo tengo la idea pero no logro hacerlo.

(9)

1   2   » gracias! 00 Calificar

moi

JUN 02, 2014 @ 21:00:53 El 3º no funciona bien da un par de problemas al compilar PD: me encanta la pagina 02 Calificar

Pikao

JUN 02, 2014 @ 22:07:30 Hola, ya esta solucionado, gracias por avisarme. Un saludo. 12 Calificar

carlos perez iglesias

JUN 16, 2014 @ 22:47:18 Muy bueno, a finales del año pasado hice un curso (2 meses) y aquí me pongo a 100. Gracias por compartir. Un saludo. 21 Calificar

Deja un comentario

Tu nombre: * Tu E­mail: * Tu sitio Web:  Código CAPTCHA *

(10)

Referencias

Documento similar