Desafio da Classe Book em Java

JavaBeginner
Pratique Agora

Introdução

Bem-vindo à Biblioteca de JavaTown, a biblioteca digital mais avançada do mundo da programação! Como o mais novo desenvolvedor de software contratado, sua primeira tarefa é ajudar a criar um sistema de catálogo digital para o imenso acervo de livros técnicos da biblioteca.

Sua missão, caso aceite, é completar a classe Book que será utilizada para representar cada livro no sistema. Esta classe armazenará informações cruciais sobre cada obra e fornecerá métodos para interagir com esses dados.

Você está pronto para levar a Biblioteca de JavaTown para a era digital? Vamos começar a programar!

Complete a Classe Book

Neste exercício, você criará um componente fundamental para um sistema de gestão de biblioteca. Esta tarefa ajudará você a praticar conceitos de programação orientada a objetos em Java, incluindo o design de classes, implementação de métodos e gerenciamento de estado. Ao completar este desafio, você ganhará experiência valiosa na criação de aplicações práticas do mundo real. Vamos mergulhar no mundo dos livros virtuais!

Tarefas

  • Abra o arquivo pré-criado Book.java no diretório ~/project.
  • Localize os comentários TODO no código.
  • Adicione o código que falta para completar a classe Book de acordo com os requisitos.

Requisitos

  • O arquivo Book.java já deve existir no diretório ~/project.
  • Complete o construtor para inicializar todos os campos (title, author, publicationYear e isAvailable).
  • Implemente o método borrowBook():
    • Se o livro estiver disponível, defina isAvailable como false e retorne true.
    • Se o livro não estiver disponível, retorne false.
  • Implemente o método returnBook():
    • Defina isAvailable como true.
  • Implemente o método getFormattedBookDetails():
    • Retorne uma string contendo o título, autor e ano de publicação do livro.
    • O formato deve ser: "Title by Author (Year)"

Exemplo

Quando concluído corretamente, o seguinte código no 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());

Deve produzir uma saída similar a esta:

cd ~/project
javac Book.java
java Book

Exemplo de Saída:

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
✨ Verificar Solução e Praticar

Resumo

Neste desafio, você criou uma classe Book que demonstra conceitos-chave da programação orientada a objetos em Java:

  1. Encapsulamento: A classe Book encapsula dados (title, author, publicationYear, isAvailable) e comportamentos (borrowBook, returnBook, getFormattedBookDetails) relacionados a um livro.
  2. Construtor: Você implementou um construtor para inicializar as propriedades do livro quando um novo objeto Book é criado.
  3. Métodos: Você criou métodos que representam ações que um livro pode sofrer (empréstimo e devolução) e um método para recuperar informações formatadas sobre o livro.
  4. Gestão de estado: A propriedade isAvailable e os métodos borrowBook e returnBook demonstram como um objeto pode gerenciar seu estado interno.

Esta classe Book forma a base de um sistema de gestão de biblioteca. Em uma aplicação real, você poderia expandir isso criando uma classe Library que gerencia uma coleção de objetos Book, ou adicionando regras de empréstimo mais sofisticadas.

Lembre-se, a programação orientada a objetos consiste em modelar conceitos do mundo real em código. À medida que você continua sua jornada na programação Java, procure oportunidades para representar elementos como objetos que possuem tanto dados quanto comportamento.

Continue praticando e experimentando com seu código. Tente adicionar mais métodos à classe Book, como um método para atualizar o título ou o autor. Ou crie uma classe Library que possa armazenar e gerenciar múltiplos objetos Book. Quanto mais você programar, mais natural se tornará o uso do Java e dos conceitos de POO.