Title: PrimerParcial
Course: 2025 - LISI - Programacion Orientada a Objetos 1-3

Escriba un programa Java para crear una clase llamada "Persona" con un atributo para nombre y un atributo de edad.

Cree dos instancias de la clase "Persona", establezca sus atributos mediante el constructor.

Imprima su nombre y edad.

Escriba un programa Java para crear una clase llamada "Perro" con un nombre y un atributo de raza.

Cree dos instancias de la clase "Perro", establezca sus atributos mediante el constructor y modifique los atributos mediante los métodos setter e imprima los valores actualizados.

Escriba un programa Java para crear una clase llamada "Rectangulo" con atributos de ancho y alto. Calcula el área y el perímetro del rectángulo.

Escriba un programa Java para crear una clase llamada "Circulo" con un atributo radio. Puede acceder a este atributo y modificarlo. Calcula el área y la circunferencia del círculo.

Escriba un programa Java para crear una clase llamada "Libro" con atributos para título, autor e ISBN, y métodos para agregar y eliminar libros de una colección.

Escriba un programa Java para crear una clase llamada "Empleado" con atributos de nombre, puesto de trabajo y  salario, y métodos para calcular y actualizar el salario.

Escriba una clase llamada "Banco" con una colección de cuentas y métodos para agregar y eliminar cuentas, y para depositar y retirar dinero. Defina también una clase llamada "Cuenta" para mantener los detalles de la cuenta de un cliente en particular.

Escriba un programa Java para crear una clase llamada "Semaforo" con atributos para el color y la duración, y métodos para cambiar el color y verificar el rojo, el amarillo o el verde.

Escriba un programa Java para crear una clase llamada "Empleado" con un nombre, salario y atributos de fecha de contratación, y un método para calcular los años de servicio.

Escriba un programa Java para crear una clase llamada "Estudiante" con atributos de nombre, calificación y cursos, y métodos para agregar y eliminar cursos.

Escriba un programa Java para crear una clase llamada "Biblioteca" con una colección de libros y métodos para agregar y eliminar libros.

Escriba un programa Java para crear una clase llamada "Avión" con un número de vuelo, destino y atributos de hora de salida, y métodos para verificar el estado y el retraso del vuelo.

Escriba un programa Java para crear una clase llamada "Inventario" con una colección de productos y métodos para agregar y eliminar productos, y para verificar si hay un inventario bajo.

Escriba un programa Java para crear una clase llamada "Escuela" con atributos para estudiantes, maestros y clases, y métodos para agregar y eliminar estudiantes y maestros, y para crear clases.

Escriba un programa Java para crear una clase llamada "BibliotecaMusical" con una colección de canciones y métodos para agregar y eliminar canciones, y para reproducir una canción aleatoria.

Diseñar la clase descrita en el diagrama. Escriba un programa en Java para probar la clase.

[Image]

Escriba un programa Java para crear una clase llamada "Película" con atributos para el título, el director, los actores y las reseñas, y métodos para agregar y recuperar reseñas.

Escriba un programa Java para crear una clase llamada "Restaurante" con atributos para los elementos del menú, precios y calificaciones, y métodos para agregar y eliminar elementos del menu, y para calcular la calificación promedio.

Diseñe la clase descrita en el diagrama. Escriba un programa en Java para probar la clase.

[Image]

Escriba un programa Java para crear una clase llamada "CuentaBancaria" con atributos para el número de cuenta, el nombre del titular de la cuenta y el saldo. Incluya métodos para depositar y retirar dinero, así como para verificar el saldo. Cree una subclase denominada "CuentaDeAhorro" que agregue un atributo de tasa de interés y un método para aplicar intereses.

Escriba un programa Java para crear una clase llamada "Vehículo" con atributos para marca, modelo y año.

Cree subclases "Automovil" y "Camión" que agreguen atributos específicos como el tamaño de la cajuela para los automóviles y la capacidad de carga útil para los camiones.

Implemente un método para mostrar los detalles del vehículo en cada subclase.

Escriba un programa Java para crear una clase llamada "Cliente" con atributos para el nombre, el correo electrónico y el historial de compras. Implemente métodos para agregar compras al historial y calcular el gasto total.

Cree una subclase "ClienteConsentido" que agregue un atributo de tasa de descuento y un método para aplicar el descuento.

Escriba un programa Java para crear una clase llamada "Curso" con atributos para el nombre del curso, el instructor y los créditos.

Cree una subclase "CursoEnLinea" que agregue atributos para la plataforma y la duración. Implemente métodos para mostrar los detalles del curso y comprobar si el curso es elegible para un certificado en función de la duración.

Escriba un programa Java para crear una clase llamada "Producto" con atributos para el ID del producto, el nombre y el precio.

Implementar métodos para aplicar un descuento y calcular el precio final.

Cree una subclase "Lavadora" que agregue un atributo de período de garantía y un método para extender la garantía.

Escriba un programa Java para crear una clase llamada "Edificio" con atributos para la dirección, el número de pisos y el área total.

Cree las subclases "TorreDeDepartamentos" y "PlazaComercial" que agreguen atributos específicos como el número de apartamentos para edificios residenciales y de oficinas para edificios comerciales.

Implemente un método para calcular la renta total de cada subclase.

Escriba un programa Java para crear una clase llamada "Evento" con atributos para el nombre, la fecha y la ubicación del evento.

Cree las subclases "Seminario" y "Concierto" que agreguen atributos específicos como el número de oradores para los seminarios y la lista de intérpretes para los conciertos.

Implemente métodos para mostrar los detalles del evento y comprobar si hay conflictos en la programación del evento.

Escriba un programa Java para crear una clase llamada "Pedido" con atributos para el ID de pedido, el cliente y la fecha del pedido.

Cree una subclase "PedidoEnLinea" que agregue atributos para la dirección de entrega y el número de seguimiento.

Implemente métodos para calcular el tiempo de entrega en función de la dirección y actualice el estado de seguimiento.

Escriba un programa Java para crear una clase llamada "Reservacion" con atributos para el numero de reservacion, el nombre del cliente y la fecha.

Cree subclases "ReservacionHotel" y "ReservacionTren" que agreguen atributos específicos como el número de habitación para hoteles y el número de asiento para vuelos.

Implemente métodos para comprobar el estado de la reserva y modificar los detalles de la reserva.

Escriba un programa Java para crear una clase llamada "Mascota" con atributos para el nombre, la especie y la edad.

Cree subclases "Perro" y "Pájaro" que agreguen atributos específicos como el juguete favorito para los perros y la envergadura de las alas para los pájaros.

Implemente métodos para mostrar los detalles de la mascota y calcular la edad de la mascota en años humanos.

Escriba un programa Java para crear una clase llamada "MembresiaGimnasio" con atributos para el nombre del miembro, el tipo de membresía y la duración.

Cree una subclase "MembresiaPremium" que agregue atributos para la disponibilidad del entrenador personal y el acceso al spa.

Implemente métodos para calcular las tarifas de membresía y buscar ofertas especiales según el tipo de membresía.

Escribir una clase Estudiante cuyos atributos (numero de cuenta, nombre, apellidos) sean inmutables (que no se puedan cambiar una vez creado el objeto).

Implementar metodos para retornar los valores asignados, asi como un metodo que retorne el nombre completo.

Escribir una clase Facultad (basese en la escuela donde estudia actualmente)

Implementar metodos para :

agregar/remover materias

mostrar la lista de materias por carrera

* considere las materias como objetos

Escribir una clase Materia con atributos para:

- alojar el nombre de la materia
- alojar a los Estudiantes cargados a esa materia
- alojar el numero de estudiantes inscritos a la materia

Implementar metodos para:

obtener el nombre de la materia
mostrar la lista de estudiantes inscritos
retornar el numero de estudiantes
agregar/remover estudiantes
obtener la escuela/carrera donde se imparte la materia

Escribir una clase Empleado atributos (numero de empleado, nombre, apellidos, sueldo base) sean inmutables (que no se puedan cambiar una vez creado el objeto).

Implementar metodos para retornar los valores asignados, asi como un metodo que retorne el nombre completo y el sueldo base.

Escribir una clase Asalariado atributos (numero de empleado, nombre, apellidos, sueldo semanal) sean inmutables (que no se puedan cambiar una vez creado el objeto).

Implementar metodos para retornar los valores asignados, asi como un metodo que retorne el nombre completo y el sueldo semanal.

Escribir una clase EmpleadoEventual cuyos atributos (numero de empleado, nombre, apellidos, salario por hora, horas trabajadas) sean inmutables (que no se puedan cambiar una vez creado el objeto).

Implementar metodos para retornar los valores asignados, asi como un metodo que retorne el nombre completo y el sueldo total por horas trabajadas.

Escribir una clase EmpleadoPorComision cuyos atributos (numero de empleado, nombre, apellidos, ventas brutas, comision) sean inmutables (que no se puedan cambiar una vez creado el objeto).

Implementar metodos para retornar los valores asignados, asi como un metodo que retorne el nombre completo y la comision total por las ventas realizadas.

Escribir una clase EmpleadoBaseComision cuyos atributos (numero de empleado, nombre, apellidos, sueldo base, ventas brutas, comision) sean inmutables (que no se puedan cambiar una vez creado el objeto).

Implementar metodos para retornar los valores asignados, asi como un metodo que retorne el nombre completo y sueldo total por las ventas realizadas.

Escriba una clase que modele cualquier elemento de la tabla periodica. Considere como atributos el nombre, número atomico, símbolo, masa atomica, grupo.

Escribir una clase que modele un dado, con un metodo que indique la cara (el numero) resultante al lanzarlo.

Escriba una clase Gato. Los atributos nombre, peso, altura, deben ser fijos e inmutables. La clase debe contar con los siguientes metodos constructores:

- uno sin parametros
- uno que reciba solamente el nombre
- uno que reciba el nombre y la altura
- uno que reciba el nombre y el peso

Donde cada uno de ellos invoque al quinto constructor que recibe los tres atributos.

Escriba una clase Bicicleta que solo tenga un atributo para el propietario. Determine la factibilidad de incluir un metodo de acceso y mutador para el atributo.

Escriba una clase que modele un billete (dinero). Utilice su capacidad de deducción para estipular las propiedades y atributos para la clase.
Escriba un programa para probar la clase, donde dependiendo de cuantos billetes se tengan, se pueda determinar la cantidad de dinero con la que se cuenta.