Desafío de la clase Book en Java

JavaJavaBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

Bienvenido a la Biblioteca JavaTown, la biblioteca digital más avanzada del mundo de la programación. Como desarrollador de software recién contratado, tu primera tarea es ayudar a crear un sistema de catálogo digital para la vasta colección de libros de programación de la biblioteca.

Tu misión, si decides aceptarla, es completar la clase Book que se utilizará para representar cada libro en el sistema de la biblioteca. Esta clase almacenará información importante sobre cada libro y proporcionará métodos para interactuar con esta información.

¿Estás listo para llevar la Biblioteca JavaTown a la era digital? ¡Comencemos a codificar!


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL java(("Java")) -.-> java/BasicSyntaxGroup(["Basic Syntax"]) java(("Java")) -.-> java/StringManipulationGroup(["String Manipulation"]) java(("Java")) -.-> java/ObjectOrientedandAdvancedConceptsGroup(["Object-Oriented and Advanced Concepts"]) java/BasicSyntaxGroup -.-> java/data_types("Data Types") java/BasicSyntaxGroup -.-> java/variables("Variables") java/StringManipulationGroup -.-> java/strings("Strings") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/classes_objects("Classes/Objects") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/class_attributes("Class Attributes") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/class_methods("Class Methods") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/constructors("Constructors") subgraph Lab Skills java/data_types -.-> lab-413850{{"Desafío de la clase Book en Java"}} java/variables -.-> lab-413850{{"Desafío de la clase Book en Java"}} java/strings -.-> lab-413850{{"Desafío de la clase Book en Java"}} java/classes_objects -.-> lab-413850{{"Desafío de la clase Book en Java"}} java/class_attributes -.-> lab-413850{{"Desafío de la clase Book en Java"}} java/class_methods -.-> lab-413850{{"Desafío de la clase Book en Java"}} java/constructors -.-> lab-413850{{"Desafío de la clase Book en Java"}} end

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
✨ Revisar Solución y Practicar

Resumen

En este desafío, has creado una clase Book que demuestra conceptos clave de la programación orientada a objetos en Java:

  1. Encapsulación: La clase Book encapsula datos (título, autor, año de publicación, disponibilidad) y comportamiento (prestar libro, devolver libro, obtener información del libro) relacionados con un libro.
  2. Constructor: Has implementado un constructor para inicializar las propiedades del libro cuando se crea un nuevo objeto Book.
  3. Métodos: Has creado métodos que representan acciones que un libro puede experimentar (prestar y devolver) y un método para recuperar información sobre el libro.
  4. Gestión de estado: La propiedad isAvailable y los métodos borrowBook y returnBook demuestran cómo un objeto puede gestionar su estado interno.

Esta clase Book forma la base de un sistema de gestión de bibliotecas. En una aplicación del mundo real, podrías ampliar esto creando una clase Library que gestione una colección de objetos Book, o agregando reglas de préstamo más sofisticadas.

Recuerda, la programación orientada a objetos se trata de modelar conceptos del mundo real en código. A medida que continúes tu viaje en la programación Java, busca oportunidades para representar las cosas como objetos con datos y comportamiento.

Sigue practicando y experimentando con tu código. Intenta agregar más métodos a la clase Book, como un método para actualizar el título o el autor del libro. O crea una clase Library que pueda almacenar y gestionar múltiples objetos Book. Cuanto más codifiques, más cómodo te sentirás con Java y los conceptos de programación orientada a objetos.