Pregunta 1. Orientación a objetos.
Desarrolla una clase CuentaBancaria que simule las operaciones básicas de una cuenta. La clase debe tener los siguientes atributos:
- numeroCuenta(String) - Formato libre, pero único.
- nombreTitular(String)
- saldo(double)
- tipoCuenta(String) - Por ejemplo: “Ahorro”, “Corriente”, “Inversión”.
Se requieren los siguientes constructores:
- Un constructor sin argumentos (saldo inicial 0.0).
- Un constructor que reciba numeroCuentaynombreTitular(saldo inicial0.0).
- Un constructor que reciba todos los atributos.
Implementa lo siguiente:
- Métodos getters y setters. El numeroCuentano debería ser modificable tras la creación del objeto. Elsaldosolo debe ser modificable a través de los métodos de ingreso y retiro.
- Los métodos equals()(dos cuentas son iguales si sunumeroCuentaes el mismo),hashCode()ytoString().
- Un método ingresarDinero(double cantidad)que incremente el saldo. Debe validar que la cantidad a ingresar sea positiva. Devolverátruesi la operación fue exitosa,falseen caso contrario.
- Un método retirarDinero(double cantidad)que decremente el saldo. Debe validar que la cantidad a retirar sea positiva y que haya saldo suficiente. Devolverátruesi la operación fue exitosa,falseen caso contrario.
- Un método consultarSaldo()que devuelva el saldo actual.
Crea una clase principal con un método main para instanciar objetos CuentaBancaria, realizar algunas operaciones de ingreso y retiro, y mostrar el estado de las cuentas.
Pregunta 2. Diseño de clases
Crea una aplicación para gestionar libros en una biblioteca con 2 clases:
- 
Libro: Representará un libro con la siguiente información:- Atributos: titulo(String),autor(String),isbn(String),numeroDeCopiasDisponibles(int).
- Constructores:
- Uno que reciba todos los atributos.
- Otro que reciba titulo,autor,isbny establezcanumeroDeCopiasDisponiblesa 1 por defecto.
 
- Métodos:
- getterspara todos los atributos.
- setNumeroDeCopiasDisponibles(int numero)
- prestarLibro(): Decrementa el número de copias disponibles en 1 si hay copias. Devuelve- truesi se pudo prestar,- falseen caso contrario.
- devolverLibro(): Incrementa el número de copias disponibles en 1.
- toString(): Devuelve una representación en cadena del libro (ej: “El Quijote por Miguel de Cervantes (ISBN: XXX) - Copias: Y”).
 
 
- Atributos: 
- 
Biblioteca: Gestionará una colección de objetosLibro.- Atributos: Un array de Libroy una variable que indica cuántos libros distintos hay (no el total de copias). La capacidad inicial del array debe ser de 20 (CAPACIDAD_INICIAL).
- Constructores:
- Uno sin argumentos que inicialice el array con CAPACIDAD_INICIAL.
 
- Uno sin argumentos que inicialice el array con 
- Métodos:
- agregarLibro(Libro nuevoLibro): Añade un libro a la biblioteca. Si el libro (mismo ISBN) ya existe, simplemente incrementa su- numeroDeCopiasDisponiblescon las del- nuevoLibro. Si es un libro nuevo y no hay espacio, el array debe redimensionarse (aumentar su capacidad en 10).
- buscarLibroPorIsbn(String isbn): Devuelve el- Librocon ese ISBN, o- nullsi no se encuentra.
- listarLibrosDisponibles(): Imprime por consola los detalles de todos los libros que tengan al menos una copia disponible.
- totalLibrosDistintos(): Devuelve la cantidad de títulos diferentes en la biblioteca.
 
 
- Atributos: Un array de