Given main() and a base Book class, define a derived class called Encyclopedia with member methods to get and set private fields of the following types: • String to store the edition • int to store the number of pages Within the derived Encyclopedia class, define a printInfo() method that overrides the Book class' printInfo() method by printing the title, author, publisher, publication date, edition, and number of pages. Ex. If the input is: The Hobbit J. R. R. Tolkien George Allen & Unwin 21 September 1937. The Illustrated Encyclopedia of the Universe Ian Ridpath Watson-Guptill 2001 2nd 384 the output is: Book Information: Book Title: The Hobbit Author: J. R. R. Tolkien Publisher: George Allen & Unwin Publication Date: 21 September 1937 Book Information: Book Title: The Illustrated Encyclopedia of the Universe Author: Ian Ridpath. Publisher: Watson-Guptill Publication Date: 2001 Edition: 2nd Number of Pages: 384

Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
icon
Related questions
Question

public class Book {

   protected String title;
   protected String author;
   protected String publisher;
   protected String publicationDate;

   public void setTitle(String userTitle) {
      title = userTitle;
   }

   public String getTitle() {
      return title;
   }

   public void setAuthor(String userAuthor) {
      author = userAuthor;
   }

   public String getAuthor(){
      return author;
   }

   public void setPublisher(String userPublisher) {
      publisher = userPublisher;
   }

   public String getPublisher() {
      return publisher;
   }

   public void setPublicationDate(String userPublicationDate) {
      publicationDate = userPublicationDate;
   }

   public String getPublicationDate() {
      return publicationDate;
   }

   public void printInfo() {
      System.out.println("Book Information: ");
      System.out.println("   Book Title: " + title);
      System.out.println("   Author: " + author);
      System.out.println("   Publisher: " + publisher);
      System.out.println("   Publication Date: " + publicationDate);
   }
}

import java.util.Scanner;

public class BookInformation {
   public static void main(String[] args) {
      Scanner scnr = new Scanner(System.in);

      Book myBook = new Book();
      Encyclopedia myEncyclopedia = new Encyclopedia();

      String title, author, publisher, publicationDate;
      String eTitle, eAuthor, ePublisher, ePublicationDate, edition;
      int numPages;

      title = scnr.nextLine();
      author = scnr.nextLine();
      publisher = scnr.nextLine();
      publicationDate = scnr.nextLine();

      eTitle = scnr.nextLine();
      eAuthor = scnr.nextLine();
      ePublisher = scnr.nextLine();
      ePublicationDate = scnr.nextLine();
      edition = scnr.nextLine();
      numPages = scnr.nextInt();

      myBook.setTitle(title);
      myBook.setAuthor(author);
      myBook.setPublisher(publisher);
      myBook.setPublicationDate(publicationDate);
      myBook.printInfo();

      myEncyclopedia.setTitle(eTitle);
      myEncyclopedia.setAuthor(eAuthor);
      myEncyclopedia.setPublisher(ePublisher);
      myEncyclopedia.setPublicationDate(ePublicationDate);
      myEncyclopedia.setEdition(edition);
      myEncyclopedia.setNumPages(numPages);
      myEncyclopedia.printInfo();

    }
}

```java
public class Encyclopedia extends Book {
    // TODO: Declare private fields

    // TODO: Define mutator methods -
    //       setEdition(), setNumPages()

    // TODO: Define accessor methods -
    //       getEdition(), getNumPages()

    // TODO: Define a printInfo() method that overrides
    //       the printInfo in Book class
}
```

### Explanation:

This code snippet is a Java class outline for `Encyclopedia` that inherits from the `Book` class. It includes placeholders (TODOs) indicating the steps needed to implement the class fully:

1. **Declare Private Fields:** 
   - Private fields are not defined yet, but they will be used to store the state of an `Encyclopedia` object, such as edition and number of pages.

2. **Mutator Methods (Setters):**
   - `setEdition()`: Method to set the edition of the encyclopedia.
   - `setNumPages()`: Method to set the number of pages.

3. **Accessor Methods (Getters):**
   - `getEdition()`: Method to retrieve the edition of the encyclopedia.
   - `getNumPages()`: Method to retrieve the number of pages.

4. **`printInfo()` Method:**
   - This method is intended to override a method from the `Book` class to provide specific details relevant to the `Encyclopedia` class. 

These steps involve encapsulating the data and overriding methods to customize the behavior of objects of this class.
Transcribed Image Text:```java public class Encyclopedia extends Book { // TODO: Declare private fields // TODO: Define mutator methods - // setEdition(), setNumPages() // TODO: Define accessor methods - // getEdition(), getNumPages() // TODO: Define a printInfo() method that overrides // the printInfo in Book class } ``` ### Explanation: This code snippet is a Java class outline for `Encyclopedia` that inherits from the `Book` class. It includes placeholders (TODOs) indicating the steps needed to implement the class fully: 1. **Declare Private Fields:** - Private fields are not defined yet, but they will be used to store the state of an `Encyclopedia` object, such as edition and number of pages. 2. **Mutator Methods (Setters):** - `setEdition()`: Method to set the edition of the encyclopedia. - `setNumPages()`: Method to set the number of pages. 3. **Accessor Methods (Getters):** - `getEdition()`: Method to retrieve the edition of the encyclopedia. - `getNumPages()`: Method to retrieve the number of pages. 4. **`printInfo()` Method:** - This method is intended to override a method from the `Book` class to provide specific details relevant to the `Encyclopedia` class. These steps involve encapsulating the data and overriding methods to customize the behavior of objects of this class.
Given the `main()` function and a base `Book` class, define a derived class called `Encyclopedia` with member methods to get and set private fields of the following types:

- String to store the edition
- Int to store the number of pages

Within the derived `Encyclopedia` class, define a `printInfo()` method that overrides the `Book` class's `printInfo()` method by printing the title, author, publisher, publication date, edition, and number of pages.

**Example:**

If the input is:

```
The Hobbit
J. R. R. Tolkien
George Allen & Unwin
21 September 1937
The Illustrated Encyclopedia of the Universe
Ian Ridpath
Watson-Guptill
2001
2nd
384
```

The output is:

```
Book Information:
   Book Title: The Hobbit
   Author: J. R. R. Tolkien
   Publisher: George Allen & Unwin
   Publication Date: 21 September 1937
Book Information:
   Book Title: The Illustrated Encyclopedia of the Universe
   Author: Ian Ridpath
   Publisher: Watson-Guptill
   Publication Date: 2001
   Edition: 2nd
   Number of Pages: 384
```

**Note:** Indentations use 3 spaces.
Transcribed Image Text:Given the `main()` function and a base `Book` class, define a derived class called `Encyclopedia` with member methods to get and set private fields of the following types: - String to store the edition - Int to store the number of pages Within the derived `Encyclopedia` class, define a `printInfo()` method that overrides the `Book` class's `printInfo()` method by printing the title, author, publisher, publication date, edition, and number of pages. **Example:** If the input is: ``` The Hobbit J. R. R. Tolkien George Allen & Unwin 21 September 1937 The Illustrated Encyclopedia of the Universe Ian Ridpath Watson-Guptill 2001 2nd 384 ``` The output is: ``` Book Information: Book Title: The Hobbit Author: J. R. R. Tolkien Publisher: George Allen & Unwin Publication Date: 21 September 1937 Book Information: Book Title: The Illustrated Encyclopedia of the Universe Author: Ian Ridpath Publisher: Watson-Guptill Publication Date: 2001 Edition: 2nd Number of Pages: 384 ``` **Note:** Indentations use 3 spaces.
Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 4 steps with 1 images

Blurred answer
Knowledge Booster
Developing computer interface
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
Database System Concepts
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education