Completar la Clase Book
En este ejercicio, crearás una pieza fundamental para un sistema de gestión bibliotecaria. Esta tarea te permitirá 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 estados. Al completar este desafío, adquirirás una experiencia valiosa en la creación de aplicaciones prácticas para el mundo real. ¡Exploremos el mundo de los libros virtuales!
Tareas
- Abre el archivo pre-generado
Book.java en el directorio ~/project.
- Localiza los comentarios TODO en el código.
- Añade el código faltante para completar la clase
Book según los requisitos establecidos.
Requisitos
- El archivo
Book.java ya debe existir en el directorio ~/project.
- Completa el constructor para inicializar todos los campos (title, author, publicationYear e isAvailable).
- Implementa el método
borrowBook():
- Si el libro está disponible, cambia isAvailable a false y devuelve true.
- Si el libro no está disponible, devuelve false.
- Implementa el método
returnBook():
- Cambia isAvailable a true.
- Implementa el método
getFormattedBookDetails():
- Devuelve una cadena de texto que contenga el título, el autor y el año de publicación del libro.
- El formato debe ser: "Title by Author (Year)"
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());
Debería 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