Completar la clase Book
En este ejercicio, crearás un componente fundamental para un sistema de gestión de bibliotecas. Esta tarea te ayudará a practicar conceptos de programación orientada a objetos en Java, incluyendo el diseño de clases, la implementación de métodos y la gestión de estado. Al completar este desafío, adquirirás valiosa experiencia en la creación de aplicaciones prácticas del mundo real. ¡Sumergámonos en el mundo de los libros virtuales!
Tareas
- Abre el archivo pre-creado
Book.java
en el directorio ~/project
.
- Encuentra los comentarios TODO en el código.
- Añade el código faltante para completar la clase
Book
según los requisitos.
Requisitos
- El archivo
Book.java
debe existir en el directorio ~/project
.
- Completa el constructor para inicializar todos los campos (título, autor, año de publicación y disponibilidad).
- Implementa el método
borrowBook()
:
- Si el libro está disponible, establece
isAvailable
en false
y devuelve true
.
- Si el libro no está disponible, devuelve
false
.
- Implementa el método
returnBook()
:
- Establece
isAvailable
en true
.
- Implementa el método
getFormattedBookDetails()
:
- Devuelve una cadena que contenga el título, el autor y el año de publicación del libro.
- El formato debe ser: "Título por Autor (Año)"
Ejemplo
Cuando se complete correctamente, el siguiente código en el método main
:
Book book = new Book("Java Programming", "John Doe", 2023);
System.out.println(book.getFormattedBookDetails());
System.out.println("Is book available? " + book.isAvailable());
boolean borrowed = book.borrowBook();
System.out.println("Book borrowed successfully? " + borrowed);
System.out.println("Is book available now? " + book.isAvailable());
book.returnBook();
System.out.println("Is book available after return? " + book.isAvailable());
Debe producir una salida similar a esta:
cd ~/project
javac Book.java
java Book
Salida de ejemplo:
Java Programming by John Doe (2023)
Is book available? true
Book borrowed successfully? true
Is book available now? false
Is book available after return? true