Boletín 403. Composición de clases y envío de mensajes
En este boletín veremos cómo definir clases y cómo pueden interactuar entre sí.
Ejercicios
Ejercicio 1. Sigue los siguientes pasos:
- Crea la clase
Grupocon las siguientes características:- Se desea almacenar para cada grupo su nombre, país y año de creación.
- Crea getters y setters necesarios
- Crea un constructor para inicializar todos los atributos. Los valores de estos se pasan por parámetros.
- Documenta los constructores.
- Crea el método
int getEdad()que devuelva los años del grupo. Obtén el año actual. - Documenta los métodos.
- Crea la clase
Discocon las siguientes características:- Se desea almacenar para cada disco el título, el grupo, el año de lanzamiento y el número de canciones.
- Crea getters y setters necesarios.
- Crea un constructor para inicializar todos los atributos. Los valores de estos se pasan por parámetros.
- Documenta los constructores.
- Crea un método que indique cuántos años de existencia tenía el grupo cuando se lanzó el disco.
- Documenta los métodos.
- Crea una clase llamda
Appcon el siguiente programa principal:- Crea el grupo español
La raíznacido en 2006. - Crea el disco de este mismo grupo
Entre poetas y presosdel año 2016 que contiene 15 temas. - Indica cuánto tiempo hace que se fundó el grupo
La raíz. - Indica cuántos años pasaron entre la creación del grupo
La raízy el lanzamiento de su discoEntre poetas y presos.
- Crea el grupo español
Ejercicio 2. Sigue los siguientes pasos:
- Crea la clase
Puntocon las siguientes características.- Debes almacenar las coordenadas
xyy. - Crea los getters. No vamos a crear setters.
- Crea un constructor para inicializar todos los atributos que se pasan por parámetros.
- Documenta los constructores.
- Crea el método
void desplazamientoHorizontal(double desplazamiento)que modifica la coordenadax. - Crea el método
void desplazamientoVertical(double desplazamiento)que modifica la coordenaday. - Crea el método
double distancia(Punto p)que calcule la distancia al punto que se pasa por parámetro. - Crea el método
String getPosición()que devuelve la posición en el siguiente formato(x,y). - Documenta los métodos.
- Debes almacenar las coordenadas
- Crea la clase
Circulocon las siguientes características:- Como atributos almacena su centro (que es un objeto de la clase
Punto) y su radio. - Crea getters y setters necesarios.
- Crea un constructor para inicializar los atributos en los que se pasan como parámetros las coordenadas
xeydel centro, y su radio. - Documenta los constructores.
- Crea un método que calcule el perímetro del círculo.
- Crea un método que calcule el área del círculo.
- Crea el método
void desplazamiento(int x, int y)que desplace el centro del círculo. - Crea el método
boolean esPuntoInterior(Punto punto)que indique si el punto que se recibe por parámetro está dentro del círculo. - Documenta los métodos.
- Como atributos almacena su centro (que es un objeto de la clase
- Crea una clase llamda
Appcon el siguiente programa principal:- Crea un círculo con centro en el punto
(10,25)y con un radio de 5. - Imprime por pantalla el perímetro del círculo.
- Imprime por pantalla el área del círculo.
- Indica si el punto
(12,11)está dentro del círculo. - Desplaza el centro del círculo 5 unidades en el eje
x, y -10 en el ejey. - Indica si el punto
(12,11)está dentro del círculo.
- Crea un círculo con centro en el punto
Ejercicio 3. Sigue los siguientes pasos:
- Crea la clase
Jugadorcon las siguientes características:- Deseamos almacenar el nombre del jugador, su dorsal, el número de goles marcados y su equipo (de la clase
Equipoque se creará en el siguiente punto). - Crea getters necesarios.
- Crea los setters excepto para el número de goles.
- Modifica el setter del dorsal, para incluir una validación: el dorsal debe estar entre 1 y 99, si no está en este valor, se inicializará en 99.
- Crea el método
boolean isLibre()que devuelve verdadero si el equipo del jugador es nulo y falso en caso contrario. - Modifica el getter del objeto de la clase
Equipopara que devuelva unOptional<Equipo>dependiendo de si el grupo es nulo o no. - Crea un constructor que reciba el nombre y dorsal del jugador. El dorsal debe estar entre 1 y 99, si no está en este valor, se inicializa en 99. El número de goles se inicializa a 0.
- Documenta los constructores.
- Crea el método
void marcarGol()que aumente en una unidad los goles marcados. - Documenta los métodos.
- Deseamos almacenar el nombre del jugador, su dorsal, el número de goles marcados y su equipo (de la clase
- Crea la clase
Equipocon las siguientes características:- Almacenaremos el nombre de equipo y una lista de jugadores (utiliza la estructura de datos que desees).
- Crea getter y setter para el nombre del equipo.
- Crea un constructor que reciba el nombre del equipo (recuerda inicializar la estructura de datos que almacenará los jugadores).
- Documenta los constructores.
- Crea el método
void añadirJugador(Jugador jugador)que añada un jugador al equipo. Para añadir al jugador ten en cuenta:- El equipo no puede tener más de 10 jugadores.
- No se pueden repetir dorsales en el mismo equipo.
- Si se cumple alguna de estas condiciones, no añadas al jugador.
- Recuerda asignarle el equipo al jugador. De este modo podremos obtener el equipo desde el jugador.
- Crea el método
Jugador getMaximoGoleador()que devuelva el jugador con más goles del equipo. Si hay dos jugadores con los mismos goles, devuelve el que tenga el dorsal más pequeño. - Documenta los métodos.
- Crea una clase llamda
Appcon el siguiente programa principal:- Crea el jugador
Castolocon dorsal 10. Este marcó 5 goles. - Crea el jugador
Ximelezcon dorsal 11. Este marcó 3 goles. - Crea el jugador
Minandacon dorsal 7. Este marcó 4 goles. - Crea el jugador
Messicon dorsal 10. Este marcó 6 goles. - Crea el equipo
Programacióny añade a estos 4 jugadores en el orden de creación. Messi no debería añadirse. - Indica el nombre del máximo goleador del equipo.
- El jugador
Minandamarcó un gol. - Indica el nombre del máximo goleador del equipo.
- Crea el jugador
Ejercicio 4. Sigue los siguientes pasos:
- Crea un enumerado
Paispara los siguientes países:Atlántida,Neverland,Utopia,WakandayWonderland. - Crea la clase
Bancocon las siguientes características:- Se debe almacenar el nombre del banco y el país.
- Crea los getters y setters necesarios.
- Crea un constructor para inicializar todos los atributos.
- Documenta los constructores.
- Crea la clase
Tarjetacon las siguientes características.- Crea y documenta el método estático
boolean comprobarNumero(String numero)que indique si un número de tarjeta de crédito/débito es auténtico utilizando el algoritmo de Luhn. Considera que una tarjeta tiene 16 dígitos. - Para cada tarjeta se debe almacenar el número de tarjeta, la fecha de caducidad, el banco que expidió la tarjeta y una pequeña descripción. La fecha de caducidad será una cadena de texto con el siguiente formato
mm/yyyy. - Crea los getters y setters necesarios. El número de tarjeta, la fecha de caducidad y el banco que expidió la tarjeta no se pueden modificar una vez creada la tarjeta. La descripción sí que se podrá modificar.
- Crea un constructor para inicializar todos los atributos que reciba por parámetros el número de la tarjeta, la fecha de caducidad en texto, el banco y una descripción. Comprueba que el número es correcto y que la tarjeta no está caducada. En caso de que esto ocurra, se debe marcar la tarjeta como inválida.
- Documenta los constructores.
- Modifica el getter para el número de tarjeta para que cada 4 dígitos muestre un espacio en caso de que esta sea válida. Si no, devolverá el texto
Inválida.
- Crea y documenta el método estático
- Crea la clase
Walletpara almacenar tarjetas de crédito en categorías con las siguientes características:- Crea un atributo
tarxetasque es unHashMap. Como clave utilizaremos la categoría de las tarjetas (una cadena de texto) y como valor unArrayListdeTarxeta. - No serán necesarios ni getters ni setters.
- Crea un constructor que inicialice el
HashMap. - Documenta los constructores.
- Crea un método
void crearCategoria(String categoria)que cree una lista vacía de tarjetas y la añada al atributotarxetascon la clave correspondiente a la categoría. Si la categoría ya existe, no realices ninguna acción. - Crea un método
ArrayList<String> getCategorias()que devuelva una lista con las categorías creadas. - Crea un método
void engadirTarxeta(String categoria, Tarxeta tarxeta). Si la categoría existe, añade la tarjeta en elArrayListya creado. Si no existe, crea la categoría y añade la tarjeta. Además, la tarjeta se añadirá solo si es válida. - Crea un método
ArrayList<Tarxeta> getTarxetasBanco(Banco banco)que devuelva una lista con todas las tarjetas de un banco, sea de la categoría que sea. - Crea un método
ArrayList<Tarxeta> getTarxetasCategoria(String categoria)que devuelva una lista con todas las tarjetas de una categoría; si la categoría no existe, devuelve una lista vacía. - Documenta los métodos.
- Crea un atributo
- Realiza el siguiente programa principal:
- Crea el banco
Gringotts Wizarding Bankdel paísAtlántida. Banco 1. - Crea el banco
Banco de Hierro de Braavosdel paísUtopía. Banco 2. - Crea la tarjeta con número
4539 1488 1343 6467, con fecha de vencimiento en junio de 2030, delGringotts Wizarding Bank, con descripciónTarjeta inválida 1. - Crea la tarjeta con número
4539 1488 0343 6467, con fecha de vencimiento en marzo de 2023, delBanco de Hierro de Braavos, con descripciónTarjeta inválida 2. - Crea la tarjeta con número
5540 5000 0100 0004, con fecha de vencimiento en agosto de 2032, delGringotts Wizarding Bank, con descripciónTarjeta válida 1. - Crea la tarjeta con número
5020 4700 0137 0055, con fecha de vencimiento en diciembre de 2031, delBanco de Hierro de Braavos, con descripciónTarjeta válida 2. - Crea un objeto de la clase
Wallet. - Crea la categoría
Personalen el objeto de la claseWallet. - Añade la tarjeta con descripción
Tarjeta válida 1en el objeto de la claseWalletdentro de la categoríaPersonal. - Añade la tarjeta con descripción
Tarjeta válida 2en el objeto de la claseWalletdentro de la categoríaTrabajo. - Muestra por pantalla las categorías del objeto de la clase
Wallet. - Crea la tarjeta con número
4548 8120 4940 0004, con fecha de vencimiento en abril de 2033, delBanco de Hierro de Braavos, con descripciónTarjeta válida 3. - Añade la tarjeta con descripción
Tarjeta válida 3en el objeto de la claseWalletdentro de la categoríaPersonal. - Intenta añadir la tarjeta con descripción
Tarjeta inválida 1en el objeto de la claseWalletdentro de la categoríaPersonal. - Intenta añadir la tarjeta con descripción
Tarjeta inválida 2en el objeto de la claseWalletdentro de la categoríaPersonal. - Muestra el número y la descripción de todas las tarjetas de la categoría
Personal. - Muestra el número y la descripción de todas las tarjetas de la categoría
Inventada. - Muestra el número y la descripción de todas las tarjetas del banco
Banco de Hierro de Braavos.
- Crea el banco