Question: JAVA PROGRAMMING_____FINAL PROJECT ( THANK YOU FOR YOUR HELPING) I made 7 java classes of ReadingMaterial, newspaper, manga, book, textbook, novel and rectangular in the

JAVA PROGRAMMING_____FINAL PROJECT ( THANK YOU FOR YOUR HELPING)

I made 7 java classes of ReadingMaterial, newspaper, manga, book, textbook, novel and rectangular in the below.

From these 7 java class, Can you create a class "ReadingFactory."

"ReadingFactory."

ReadingFactory should create a newspaper, a manga, a textbook, and a novel.

a. ReadingFactory should contain a method that demonstrates polymorphism by displaying the object sent to it.

b. ReadingFactory should have an arraylist of all the instantiated objects - sort the collection, and then use the display method.

c. Demonstrate casting an object back to its original data type (e.g. cast a ReadingMaterial back to a Novel.)

Be sure all methods have been tested.

Be sure to include JavaDocs! (Generate and save them)

------------------------------------------------------------------------------------------------------

// 1. ReadingMaterial Class

public class ReadingMaterial {

private String language; String publisher;

//Constructor public ReadingMaterial(String publisher, String language) { setPublisher(publisher); setLanguage(language); }

//Getter method for language public String getLanguage() { //Returning language return language; } //Getter method for publisher public String getPublisher() { //Returning publisher return publisher; } //Setter method for language private void setLanguage(String language) { //Setting language this.language = language; } public void setLanguage() { this.language = "English"; }

//Setter method for publisher private void setPublisher(String publisher) { //Setting publisher this.publisher = publisher; } //Overriding toString method @Override public String toString() { return " Publisher: " + getPublisher() + " Language: " + getLanguage(); }

}

-----------------------------------------------------------------------------------------------------

//2. Newspaper Class

// Create a subclass of ReadingMaterial called Newspaper - should call superclass constructors

public class Newspaper extends ReadingMaterial { //Instance variables private String name; private Rectangle size; private int numPages; //Constructor public Newspaper(String publisher, String name, Rectangle size, int numPages) { //Calling super class constructor super(publisher,"English"); setName(name); setSize(size); setNumPages(numPages); }

//Getter method for name public String getName() { //Returning name return name; } //Getter method for size public Rectangle getSize() { //Returning size return size; } //Getter method for number of pages public int getNumPages() { //Returning number of pages return numPages; } //Setter method for name private void setName(String name) { //Setting name this.name = name; } //Setter method for size private void setSize(Rectangle size) { //Setting size this.size = size; } //Setter method for number of pages private void setNumPages(int numPages) { if (numPages <= 0) numPages = 1; //Setting numPages this.numPages = numPages; } //Overriding toString method @Override public String toString() { return " Name: " + getName() + " Size: " + getSize() + " Number of Pages: " + getNumPages() + super.toString(); }}

---------------------------------------------------------------------------------------------------------------------

//3. Manga Class

//Create a subclass of ReadingMaterial called Manga- should call superclass constructors public class Manga extends ReadingMaterial { private String name; private String author; private Rectangle size; private int numPages; private boolean typicalReadingOrder;

public Manga(String publisher,String name, String author, Rectangle size, int numPages, boolean typicalReadingOrder) { super(publisher, "English"); setName(name); setAuthor(author); setSize(size); setNumPages(numPages); setTypicalReadingOrder(typicalReadingOrder); }

/*Setters and Getters */

public String getName() { return name; }

private void setName(String name) { this.name = name; }

public String getAuthor() { return author; }

private void setAuthor(String author) { this.author = author; }

public Rectangle getSize() { return size; }

private void setSize(Rectangle size) { this.size = size; }

public int getNumPages() { return numPages; }

private void setNumPages(int numPages) { if (numPages <= 0) numPages = 1; this.numPages = numPages; }

public boolean getTypicalReadingOrder() { return typicalReadingOrder; }

private void setTypicalReadingOrder(boolean typicalReadingOrder) { this.typicalReadingOrder = typicalReadingOrder; }

@Override

public String toString() { return "Manga{" + " \tpublisher=" + publisher +" \tname=" + name + ", \tauthor=" + author + ", \tsize=" + size + ", \tnumPages=" + numPages + ", \ttypicalReadingOrder=" + typicalReadingOrder + " }"; } }

------------------------------------------------------------------------------------------------------------------------

//4. Book Class

//Create a subclass of ReadingMaterial called Book- should call superclass constructors

public class Book extends ReadingMaterial {

private String name; private String author; private Rectangle size; private int numPages; private String ISBN;

public Book(String publisher,String name, String author, Rectangle size, int numPages,String ISBN) { super(publisher,"English"); setName(name); setAuthor(author); setSize(size); setNumPages(numPages); setISBN(ISBN); }

public String getName(){ return name; } private void setName(String name){ this.name=name; }

public String getAuthor(){ return author; } private void setAuthor(String author){ this.author=author; } public int getNumPages(){ return numPages; } private void setNumPages(int numPages){ this.numPages=numPages; if (numPages <= 0) numPages = 1;

} public Rectangle getSize(){ return size; } private void setSize(Rectangle size){ this.size=size; } private void setISBN(String ISBN){ this.ISBN=ISBN; } public String getISBN(){ return ISBN; } @Override public String toString() { return "Book{" + " \tpublisher=" + publisher +" \tname=" + name + ", \tauthor=" + author + ", \tsize=" + size + ", \tnumPages=" + numPages +" \tISBN=" + ISBN + " }"; }

public void display(){ System.out.println("Display method of Book is called"); }}

--------------------------------------------------------------------------------------------------

//5. Textbook class

//Create a subclass of Book called Textbook- should call superclass constructors

public class Textbook extends Book {

private String subject; private String course;

public Textbook(String publisher, String name, String author, Rectangle size, int numPages, String ISBN, String subject, String course) { super(publisher,name,author,size,numPages,ISBN ); setSubject(subject); setCourse(course);

}

public String getSubject() { return subject; }

private void setSubject(String subject) { this.subject = subject; }

public String getCourse() { return course; }

private void setCourse(String course) { this.course = course; }

@Override public String toString() { return "Textbook [subject=" + subject + ", course=" + course + "]"; }

@Override public void display() { System.out.println("Display method of Textbook is called"); }}

---------------------------------------------------------------------------------------------------

//6. Novel class

//Create a subclass of Book called Novel- should call superclass constructors

public class Novel extends Book {

private String genre;

public Novel(String publisher, String name, String author, Rectangle size, int numPages, String ISBN, String genre) { super(publisher,name,author,size,numPages,ISBN ); setGenre(genre);

}

public String getGenre() { return genre; }

private void setGenre(String genre) { this.genre = genre; }

@Override public String toString() { return "Novel [genre=" + genre + "]"; }

@Override public void display() { System.out.println("Display method of Novel is called"); } }

------------------------------------------------------------------------------------------------------

//7. Rectangle class

public class Rectangle { private double width; private double length;

Rectangle() { width=1; length=1; }

Rectangle(double length, double width) {

setWidth(width); setLength(length); }

public double getWidth() { return width; } private void setWidth(double width) { if (width <= 0) width = 1; this.width = width; } public double getLength() { return length; } private void setLength(double length) { if (length <= 0) length = 1; this.length = length; } @Override public String toString() { return width + " * " + length; } }

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!