ITCS Programming Assignment 4 This project uses concepts from chapter six in our Gaddis textbook. You will be writing the equals( ), compareTo( ) and toString( ) methods for several classes. You will also become familiar with the has-a relationship between objects. We will talk more about this when we get back from break and I will be online over break. Create a project that has four classes: Book class: six fields: title:String author:Author ISBN:String price:double quantity: double publisher:Publisher one static field: static int holdings write a constructor that takes no arguments-sets the fields to null and 0 write a second overloaded constructor that takes values for each of the six fields and increments the holdings field write a setPrice( ) method write a changeQuantity( ) method write an equals( ) method that uses the ISBN to determine if two book objects are the same write a compareTo( ) method that compares two books using the title field write a toString( ) method that returns a string holding the title, author, price and quantity. write a static method called getHoldings( ) which returns the value of the static holdings field Author class: three fields lastName:String firstName:String yearBorn:int write a constructor that takes no arguments write a second overloaded constructor that takes values for each of the three fields write an equals( ) method that determines if two authors are the same based on all three fields write a compareTo( ) method that compares two Author objects based on lastName and then firstName (that means if two authors have the same last name, then check the first names) write a toString( ) method that returns a string containing the values of all three fields Publisher class: three fields publisherName:String address:String phoneNumber:String write a constructor that takes no arguments write a second overloaded constructor that takes values for each of the three fields write an equals( ) method that determines if two Publisher objects are the same based on the publisherName field write a compareTo( ) method that compares two Publisher objects based on publisherName write a toString( ) method that returns a string containing the values of all three fields Driver class: This class contains the main( ) method for testing. Create three Book objects. Check to see if two of them are equal and then check to see if one Book object is less than or greater than the other two Book objects. Print the book info for each Book object and print the number of holdings. Where to start: First write the Author and the Publisher classes. Then you can write the Book class. The Book class has an Author as a field and a Publisher as a field, this is the has-a relationship. The Book class can call the method of the other classes that are its fields. For example: public String toString( ) { return title + “ “ + author.toString( ) + “ “ + price + “ “ + quantity; } author.toString( ) will call the toString method of the Author class. You can do something similar in the equals( ) and compareTo( ) methods.