Crea una clase abstracta llamada FiguraGeometrica que represente una figura geométrica. La clase debe tener un atributo llamado nombre y un método abstracto calcularArea(). Luego, crea dos clases derivadas llamadas Circulo y Rectangulo que hereden de la clase FiguraGeometrica. La clase Circulo debe tener atributos adicionales radio y la clase Rectangulo debe tener atributos adicionales base y altura. Implementa el método calcularArea() en ambas clases derivadas para que calcule y retorne el área correspondiente a cada tipo de figura geométrica (fórmula del área del círculo y del rectángulo). En el método main, instancia al menos un objeto de cada clase derivada con información diferente y muestra en la consola el nombre de la figura y su área correspondiente.
Crea una clase abstracta llamada Animal que represente a diferentes tipos de animales. La clase debe tener un atributo llamado nombre y un método abstracto llamado hacerSonido() que represente el sonido característico del animal. Luego, crea al menos dos clases derivadas de Animal: Perro y Gato. Cada una de estas clases debe implementar el método abstracto hacerSonido() para representar los sonidos típicos de un perro y un gato. En el método main, instancia al menos un objeto de cada clase derivada (Perro y Gato) con información diferente y muestra en la consola el nombre del animal y el sonido que hace. Este enunciado te permitirá practicar la creación de clases abstractas y la implementación de métodos abstractos para representar comportamientos específicos en las clases derivadas.
Crea una clase abstracta llamada Figura que represente diferentes formas geométricas. La clase debe tener un atributo llamado nombre y dos métodos abstractos: calcularArea() y calcularPerimetro(). Luego, crea dos clases derivadas de Figura: Circulo y Rectangulo. La clase Circulo debe tener un atributo adicional radio, y la clase Rectangulo debe tener atributos adicionales base y altura. Implementa los métodos abstractos calcularArea() y calcularPerimetro() en ambas clases derivadas para que calcule y retorne el área y el perímetro correspondientes a cada tipo de figura geométrica. En el método main, instancia al menos un objeto de cada clase derivada (Circulo y Rectangulo) con información diferente y muestra en la consola el nombre de la figura, su área y su perímetro.
Crea una clase abstracta llamada Mueble que represente diferentes tipos de muebles. La clase debe tener un atributo llamado nombre y dos métodos abstractos: calcularPrecio() y descripcion(). El método calcularPrecio() debe calcular y retornar el precio del mueble, mientras que descripcion() debe mostrar una descripción del mueble. Luego, crea dos clases derivadas de Mueble: Silla y Mesa. La clase Silla debe tener un atributo adicional llamado material y la clase Mesa debe tener un atributo adicional llamado numPatas. Implementa los métodos abstractos calcularPrecio() y descripcion() en ambas clases derivadas para que calcule y retorne el precio y muestre una descripción correspondiente a cada tipo de mueble. En el método main, instancia al menos un objeto de cada clase derivada (Silla y Mesa) con información diferente y muestra en la consola el nombre del mueble, su descripción y su precio.
Crea un sistema de gestión de empleados utilizando clases abstractas. La clase principal abstracta será Empleado, de la cual heredarán dos clases concretas: EmpleadoTemporal y EmpleadoPermanente. Luego, cada una de estas clases tendrá dos subclases adicionales llamadas EmpleadoContratista y EmpleadoFijo. La clase Empleado debe tener los siguientes atributos: nombre, edad y salarioBase. Además, debe tener un método abstracto llamado calcularSalario() que calculará el salario final del empleado. La clase EmpleadoTemporal debe tener un atributo adicional llamado diasTrabajados. Implementa el método calcularSalario() para calcular el salario multiplicando los días trabajados por un valor fijo diario. La clase EmpleadoPermanente debe tener un atributo adicional llamado antiguedad. Implementa el método calcularSalario() para calcular el salario sumando un extra por cada año de antigüedad. Las subclases EmpleadoContratista y EmpleadoFijo deben heredar de EmpleadoTemporal y EmpleadoPermanente, respectivamente. Además, cada una debe tener atributos adicionales específicos (proyecto para EmpleadoContratista y departamento para EmpleadoFijo). Implementa los métodos calcularSalario() en cada subclase para considerar estos atributos. En el método main, instancia al menos un objeto de cada clase (incluyendo las subclases) con información diferente y muestra en la consola la información completa de cada empleado, incluido su salario final.
EJEMPLO INTERFACE Crea un programa en Java que modele figuras geométricas. Define una interfaz llamada Figura que contenga dos métodos abstractos: calcularArea() y calcularPerimetro(). Luego, implementa esta interfaz en al menos dos clases: Circulo y Rectangulo. La clase Circulo debe tener un constructor que reciba el radio como parámetro, mientras que la clase Rectangulo debe tener un constructor que reciba la longitud y la anchura. En el programa principal, instancia un objeto de cada clase, calcula y muestra en la consola el área y el perímetro de cada figura geométrica. Este ejercicio te permitirá practicar la creación de interfaces, implementación de métodos abstractos y uso de clases concretas.
Desarrolla un sistema de gestión de empleados que haga uso de clases abstractas en Java. El sistema debe tener las siguientes clases: Empleado: Esta clase abstracta representa a un empleado genérico e incluye los siguientes atributos: Nombre Edad Salario Además, debe tener un método abstracto llamado calcularSueldo() que deberá ser implementado por las clases concretas que hereden de esta clase. EmpleadoTemporal: Esta clase hereda de Empleado y representa a un empleado contratado temporalmente. Debe incluir los siguientes atributos adicionales: Duración del contrato (en meses) El método calcularSueldo() para este tipo de empleado deberá calcular el salario multiplicando la duración del contrato por un salario base mensual. EmpleadoPermanente: Esta clase hereda de Empleado y representa a un empleado contratado permanentemente. Debe incluir los siguientes atributos adicionales: Departamento El método calcularSueldo() para este tipo de empleado deberá calcular el salario sumando un bono adicional al salario base. Implementa un programa principal que permita crear empleados temporales y permanentes, ingresar los datos necesarios y obtener información sobre cada empleado, incluyendo su salario.
Desarrolla un sistema de gestión de figuras geométricas que haga uso de clases abstractas en Java. El sistema debe tener las siguientes clases: Figura: Esta clase abstracta representa a una figura geométrica genérica e incluye los siguientes métodos abstractos: calcularArea(): Debe calcular y devolver el área de la figura. calcularPerimetro(): Debe calcular y devolver el perímetro de la figura. Triangulo: Esta clase hereda de Figura y representa a un triángulo. Debe incluir los siguientes atributos adicionales: Lado1 Lado2 Lado3 Además, debe implementar los métodos abstractos calcularArea() y calcularPerimetro() para calcular el área y el perímetro del triángulo respectivamente. Circulo: Esta clase hereda de Figura y representa a un círculo. Debe incluir los siguientes atributos adicionales: Radio Además, debe implementar los métodos abstractos calcularArea() y calcularPerimetro() para calcular el área y el perímetro del círculo respectivamente. Implementa un programa principal que permita crear objetos de tipo Triangulo y Circulo, ingresar los datos necesarios y obtener información sobre el área y el perímetro de cada figura.
Desarrolla un sistema de gestión de vehículos que haga uso de clases abstractas en Java. El sistema debe tener las siguientes clases: Vehiculo: Esta clase abstracta representa a un vehículo genérico e incluye los siguientes métodos abstractos: calcularVelocidad(): Debe calcular y devolver la velocidad del vehículo. calcularCombustible(): Debe calcular y devolver el consumo de combustible del vehículo. Automovil: Esta clase hereda de Vehiculo y representa a un automóvil. Debe incluir los siguientes atributos adicionales: Marca Modelo Año de fabricación Además, debe implementar los métodos abstractos calcularVelocidad() y calcularCombustible() para calcular la velocidad y el consumo de combustible del automóvil respectivamente. Motocicleta: Esta clase hereda de Vehiculo y representa a una motocicleta. Debe incluir los siguientes atributos adicionales: Marca Modelo Cilindrada Además, debe implementar los métodos abstractos calcularVelocidad() y calcularCombustible() para calcular la velocidad y el consumo de combustible de la motocicleta respectivamente. Implementa un programa principal que permita crear objetos de tipo Automovil y Motocicleta, ingresar los datos necesarios y obtener información sobre la velocidad y el consumo de combustible de cada vehículo.
Desarrolla un sistema de gestión de dispositivos electrónicos que haga uso de interfaces en Java. El sistema debe tener las siguientes interfaces y clases: Interfaz Conectable: Esta interfaz define dos métodos abstractos: conectar(): Debe imprimir un mensaje indicando que el dispositivo se ha conectado. desconectar(): Debe imprimir un mensaje indicando que el dispositivo se ha desconectado. Interfaz Recargable: Esta interfaz define un método abstracto: recargarBateria(): Debe imprimir un mensaje indicando que la batería del dispositivo se está recargando. Clase DispositivoElectronico: Esta clase abstracta representa un dispositivo electrónico genérico e implementa la interfaz Conectable. Debe incluir los siguientes atributos: Marca Modelo Año de fabricación Clase Smartphone: Esta clase hereda de DispositivoElectronico e implementa las interfaces Conectable y Recargable. Debe incluir un atributo adicional: SistemaOperativo Clase Portatil: Esta clase hereda de DispositivoElectronico e implementa las interfaces Conectable y Recargable. Debe incluir un atributo adicional: Tamaño de pantalla Implementa un programa principal que permita crear objetos de tipo Smartphone y Portatil, ingresar los datos necesarios y realizar las siguientes acciones para cada dispositivo: Conectar y desconectar. Recargar la batería.
Desarrolla un sistema de gestión de cuentas bancarias que haga uso de interfaces en Java. El sistema debe tener las siguientes interfaces y clases: Interfaz CuentaBancaria: Esta interfaz define métodos abstractos para realizar operaciones básicas con una cuenta bancaria: depositar(double cantidad): Debe agregar la cantidad especificada al saldo de la cuenta. retirar(double cantidad): Debe retirar la cantidad especificada del saldo de la cuenta. consultarSaldo(): Debe devolver el saldo actual de la cuenta. Clase CuentaCorriente: Esta clase implementa la interfaz CuentaBancaria y representa una cuenta corriente. Debe incluir un atributo adicional: sobregiro: El límite de sobregiro permitido para la cuenta corriente. Clase CuentaAhorro: Esta clase implementa la interfaz CuentaBancaria y representa una cuenta de ahorro. Debe incluir un atributo adicional: tasaInteres: La tasa de interés aplicada a los saldos de la cuenta de ahorro. Implementa un programa principal que permita crear objetos de tipo CuentaCorriente y CuentaAhorro, ingresar los datos necesarios y realizar las siguientes operaciones para cada cuenta: Depositar dinero. Retirar dinero. Consultar el saldo actual.
Desarrolla un sistema de gestión de biblioteca en Java que permita administrar tanto libros como revistas. El sistema deberá ser capaz de realizar operaciones como agregar nuevos elementos, buscar por título, autor o categoría, prestar y devolver libros/revistas, así como generar informes de inventario. Funcionalidades del Sistema: Registro de Libros y Revistas: El sistema permitirá a los bibliotecarios registrar nuevos libros y revistas en la base de datos, incluyendo detalles como título, autor, año de publicación y categoría. Búsqueda por Título, Autor o Categoría: Los usuarios podrán buscar libros y revistas en el sistema utilizando diferentes criterios de búsqueda, como título, autor o categoría. Préstamo y Devolución de Libros/Revistas: Los bibliotecarios podrán registrar préstamos y devoluciones de libros y revistas para los usuarios registrados en el sistema, manteniendo un registro actualizado del inventario. Generación de Informes: El sistema permitirá generar informes detallados sobre el inventario de la biblioteca, incluyendo el listado de libros y revistas disponibles, los elementos prestados, y el historial de préstamos. Estructura del Sistema: El sistema estará compuesto por las siguientes interfaces y clases: Interfaz GestorBiblioteca: Definirá métodos abstractos para realizar operaciones básicas de gestión de la biblioteca, como agregar elementos, buscar, prestar y devolver libros/revistas, y generar informes. Clase Libro: Representará un libro en la biblioteca, incluyendo atributos como título, autor, año de publicación y categoría. Implementará la interfaz GestorBiblioteca. Clase Revista: Representará una revista en la biblioteca, incluyendo atributos como título, editor, año de publicación y categoría. También implementará la interfaz GestorBiblioteca. Clase Biblioteca: Será la clase principal que gestionará la base de datos de libros y revistas, así como las operaciones de préstamo y devolución. Implementará la interfaz GestorBiblioteca.
Desarrolla un sistema de gestión de empleados en Java que permita administrar información sobre empleados de una empresa. El sistema deberá ser capaz de realizar operaciones como agregar nuevos empleados, buscar empleados por diferentes criterios, calcular el salario de un empleado y generar informes de empleados. Funcionalidades del Sistema: Registro de Empleados: El sistema permitirá a los administradores registrar nuevos empleados en la base de datos, incluyendo detalles como nombre, edad, puesto y salario base. Búsqueda de Empleados: Los usuarios podrán buscar empleados en el sistema utilizando diferentes criterios de búsqueda, como nombre, edad o puesto. Cálculo de Salario: El sistema calculará el salario de un empleado teniendo en cuenta su salario base y cualquier bonificación o deducción aplicable. Generación de Informes: El sistema permitirá generar informes detallados sobre los empleados, incluyendo la lista de todos los empleados, empleados por departamento, o empleados que ganan más de cierta cantidad. Estructura del Sistema: El sistema estará compuesto por las siguientes interfaces y clases: Interfaz GestorEmpleados: Definirá métodos abstractos para realizar operaciones básicas de gestión de empleados, como agregar empleados, buscar, calcular salario y generar informes. Clase Empleado: Representará un empleado en la empresa, incluyendo atributos como nombre, edad, puesto y salario base. Clase Empresa: Será la clase principal que gestionará la base de datos de empleados y las operaciones relacionadas. Implementará la interfaz GestorEmpleados.
Desarrolla un sistema de gestión de productos en un inventario en Java que permita administrar información sobre productos y realizar operaciones como agregar nuevos productos, buscar productos por diferentes criterios, calcular el total de inventario y generar informes de productos más vendidos. Funcionalidades del Sistema: Registro de Productos: El sistema permitirá a los administradores registrar nuevos productos en el inventario, incluyendo detalles como nombre, precio, cantidad disponible y categoría. Búsqueda de Productos: Los usuarios podrán buscar productos en el inventario utilizando diferentes criterios de búsqueda, como nombre, precio o categoría. Cálculo del Total de Inventario: El sistema calculará el valor total del inventario sumando el precio de todos los productos disponibles en stock. Generación de Informes de Productos más Vendidos: El sistema permitirá generar informes que muestren los productos más vendidos en un período de tiempo específico, mostrando el nombre del producto, la cantidad vendida y los ingresos generados. Estructura del Sistema: El sistema estará compuesto por las siguientes interfaces y clases: Interfaz GestorProductos: Definirá métodos abstractos para realizar operaciones básicas de gestión de productos, como agregar productos, buscar, calcular el total de inventario y generar informes. Clase Producto: Representará un producto en el inventario, incluyendo atributos como nombre, precio, cantidad disponible y categoría. Clase Inventario: Será la clase principal que gestionará el inventario de productos y las operaciones relacionadas. Implementará la interfaz GestorProductos.
Desarrolla un sistema en Java para administrar el personal de una empresa. El sistema debe permitir gestionar distintos tipos de empleados, como empleados regulares, gerentes y directores. Cada tipo de empleado tiene características específicas y el sistema debe ser capaz de manejarlas adecuadamente. Funcionalidades del Sistema: Registro de Empleados: El sistema debe permitir registrar nuevos empleados, incluyendo detalles como nombre, edad, salario base y departamento al que pertenecen. Cálculo de Salario: El sistema debe ser capaz de calcular el salario mensual de cada empleado. El salario base puede variar según el tipo de empleado, y se le pueden aplicar bonificaciones o deducciones adicionales. Listado de Empleados: El sistema debe poder mostrar un listado de todos los empleados registrados, mostrando sus detalles como nombre, edad, salario y departamento. Búsqueda de Empleados: Debe ser posible buscar empleados por diferentes criterios, como nombre, departamento o rango salarial. Estructura del Sistema: El sistema estará compuesto por las siguientes clases y una clase abstracta: Clase abstracta Empleado: Esta clase representará a un empleado genérico en la empresa. Deberá contener métodos abstractos para calcular el salario mensual y para mostrar los detalles del empleado. Clase Regular: Esta clase representará a un empleado regular en la empresa. Deberá extender la clase Empleado e implementar los métodos abstractos con la lógica específica para calcular el salario y mostrar los detalles. Clase Gerente: Esta clase representará a un gerente en la empresa. Deberá extender la clase Empleado e implementar los métodos abstractos con la lógica específica para calcular el salario y mostrar los detalles. Clase Director: Esta clase representará a un director en la empresa. Deberá extender la clase Empleado e implementar los métodos abstractos con la lógica específica para calcular el salario y mostrar los detalles. Consideraciones Adicionales: Utiliza los conceptos de herencia y polimorfismo para organizar y manejar los diferentes tipos de empleados en el sistema. Asegúrate de realizar una correcta encapsulación de los atributos de cada clase y utiliza métodos getters y setters según sea necesario. Implementa una interfaz de usuario sencilla para interactuar con el sistema, permitiendo al usuario realizar las diferentes operaciones mencionadas.