Book, Dictionary and Novel Class in Java

Posted by Samath
  1177
March 12, 2015

 

Write a class named Book to represent a book. This class is to be the parent class for several types of books. The class should define the following methods:

a) A constructor that accepts the isbn number of a book (a string) and the number of pages in the book, in that order.

b) The getter methods getISBN, and getPages.

c) A setter method updatePages that accepts an integer as a parameter and sets the number of pages to the parameter value.

Write the class Dictionary which is a subclass of Book. A dictionary has an isbn number and a number of pages along with a count of the number of entries it contains. The class Dictionary shall have the following methods:

a) A constructor that accepts the the isbn number, number of entries, and number of pages (in that order).

b) A constructor that accepts the isbn number and number of pages (in that order) as parameters. This constructor shall set the number of entries for the dictionary to 0.

c) A method named setEntries that accepts an integer as it parameter and sets the number of entries to the value of the parameter.

d) A toString method that returns a string formatted as follows: ISBN: Entries per page: 

ISBN: <isbncode>    Entries per page: <calculate the ration entries / page>

Write the class Novel which is a subclass of the class Book. A novel has an isbn number, a number of pages, a title (a string) and an author (also a string). The class shall have the following methods:

a) A constructor that accepts the novel’s title, author, isbn, and number of pages, in that order.

b) A setter method updatePages that accepts an integer value and set the number of pages for the novel to the parameter value + 10 (to accommodate prologue and epilogue).

c) A toString method that returns a string formatted as follows:

Author: <author>      Title:<title>    ISBN:<isbn>   Pages:<pages>

4. Write code to test your classes by performing the following tasks:

a) Create a dictionary without specifying the number of entries.

b) Create a novel with data of your choice.

c) Create a second dictionary specifying the number of entries

d) Invoke the updatePages method with the value 100 on each of the object.

e) Print all the objects.

 

Book Class:

public class Book 
{
    protected String isbn_num;
    protected String page_num;
    
    public Book(String isbn, String page)
    {
        isbn_num = isbn;
        page_num = page;
    }
    
    public String getISBN()
    {
        return isbn_num;
    }
    
    public String getPages()
    {
        return page_num;
    }
    
    public void updatePages(String p)
    {
        page_num = p;
    }
}

 

Dictionary Class:

public class Dictionary extends Book
{
    private int entries_count;
    
    public Dictionary(String isbn, int en_count, String page)
    {
        super(isbn, page);
        entries_count = en_count;
    }
    
    public Dictionary(String isbn, String page)
    {
        super(isbn, page);
        entries_count = 0;
    }
    
    public void setEntries(int en)
    {
         entries_count = en;
    }
    
    public String toString()
    {
        String result;
        int enPerPage = (entries_count/Integer.parseInt(page_num));
        
        result = "ISBN: "+ isbn_num +" Entries per page: "+ enPerPage+"\n";
        return result;
    }
    
}

 

Novel Class:

public class Novel extends Book
{
    private String author;
    private String title;
    
    public Novel(String t, String aut, String isbn, String page)
    {
        super(isbn, page);
        author = aut;
        title = t;
    }
    
    public void updatePages(String p)
    {
        int temp = Integer.parseInt(p)+10;
        page_num = Integer.toString(temp);      
    }
    
    public String toString()
    {
        String result;
        result = "Author: "+author+" Title: "+title+" ISBN: "+ isbn_num +" Page: "+ page_num+"\n";
        return result;
    }
}

 

BookTest:

public class BookTest {
    public static void main(String[] args) {
        Dictionary dic = new Dictionary("63728","65");
        Novel nov = new Novel("UP and Running", "John Brown", "59876", "98");
        Dictionary dic2 = new Dictionary("85648",325,"65");
        
        dic.updatePages("100");
        nov.updatePages("100");
        dic2.updatePages("100");
        
        System.out.print(dic);
        System.out.print(nov.toString());
        System.out.print(dic2.toString());
        
  }
}