Design Book Library In Java (Object-Oriented Design)

Rohit Singh
2 min readJun 13, 2021
Library
Photo by Zaini Izzuddin on Unsplash

The class OnlineReader represents the body of the program. Book.java class contains all the properties and methods of the book. The Library.java class is responsible for creating a library that has methods that help to control the library.

import java.util.*;public class Library {private HashMap<Integer, Book> Books;public Library(){
Books = new HashMap<Integer, Book>();
}
/** This will add a new book in library */
public Boolean AddBook(Book book)
{
if(!Books.containsKey(book.GetBookId())) {
Books.put(book.GetBookId(), book);
return true;
}
return false;
}
/**This will remove a book from library*/public Boolean RemoveBook(int id)
{
if(Books.containsKey(id)) {
Books.remove(id);
return true;
}
return false;
}
/**Get a single book from library*/public Book GetBookFromLibrary(int id)
{
Book book = null;
if(!Books.containsKey(id))
return book;
if(Books.containsKey(id)) {
book = Books.get(id);
book.SetAvailability();
}
return book;
}
/**Get all books from library*/public List<Book> GetAllBooksFromLibrary()
{
List<Book> books = new ArrayList<Book>();
for(Book val: Books.values()) {
books.add(val);
}
return books;
}
}
public class Book {
private int id;
private String Name;
private String Author;
private boolean IsAvailable;
public Book(int id, String Name, String Author)
{
this.id = id;
this.Name = Name;
this.Author = Author;
this.IsAvailable = true;
}
public int GetBookId()
{
return id;
}
public void SetBookId(int id)
{
this.id = id;
}
public String GetBookName()
{
return Name;
}
public void SetBookName(String Name)
{
this.Name = Name;
}
public String GetAuthor()
{
return Author;
}
public void SetAuthor(String Author)
{
this.Author = Author;
}
public void SetAvailability()
{
this.IsAvailable = false;
}
public String IsBookAvailable()
{
return this.IsAvailable ? “Yes” : “No”;
}
}
import java.util.List;public class OnlineReader {
private Library library;
private Book book;
public OnlineReader() {
library = new Library();
}
public void DisplayAllBooksFromLibraray()
{
List<Book> books = library.GetAllBooksFromLibrary();
for(Book b: books) {
PrintBookInfoOnScreen(b);
}
}
public void DisplayBookfromLibrary(int id)
{
Book b = library.GetBookFromLibrary(id);
if(b!=null) {
PrintBookInfoOnScreen(b);
}
}
public void PrintBookInfoOnScreen(Book b)
{
System.out.println(“Id: “+b.GetBookId()+” Name: “+b.GetBookName()+ “ Author: “+b.GetAuthor()+ “ Available: “+b.IsBookAvailable());
}
public void AddSeparator()
{
System.out.println(“ — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — -”);
}
public static void main(String [] args)
{
OnlineReader reader = new OnlineReader();
reader.book = new Book(1, “Book 1” , “Author 1”);
reader.library.AddBook(reader.book);
reader.book = new Book(2, “Book 2” , “Author 2”);
reader.library.AddBook(reader.book);
reader.book = new Book(3, “Book 3” , “Author 3”);
reader.library.AddBook(reader.book);
reader.DisplayBookfromLibrary(2);
reader.AddSeparator();
reader.DisplayAllBooksFromLibraray();
reader.library.RemoveBook(3);
reader.AddSeparator();
reader.DisplayAllBooksFromLibraray();
reader.AddSeparator();
}
}

If you find this article informative, give it a clap.

--

--