Introduction
This assignment is very similar to the last textbook assignment, however this time we're asking you to handle invalid inputs with exceptions. The new information here is in bold.
This assignment asks you to write and compile a simple, but complete class specification. You should also write a test driver, a main() method, that demonstrates that it functions correctly. the goal here is to reinforce your understanding of the object-oriented approach to software development.
Additionally, you'll notice that the required class makes use of Java's Exception-handling facility. Newness galore! Please think carefully about not only where the exceptional conditions can occur, but also where the Exceptions should be defined, and where they are best handled -- and what that means for the access-specifier of each of the Exception classes. facility.
The Textbook class
Please implement a class specification for a class that models aspects of a textbook might be useful for an on-line ordering system:
- The textbook's title. This shall be set at initalization and accessible, but unchangeable.
- The textbook's author. This shall be set at initalization and accessible, but unchangeable.
- The textbook's number of pages. This shall be set at initalization and accessible, but unchangeable.
- The textbook's price. It may be set at initalization (or not) and can be changed later. It is also accessible.
- Reader's comments. These can be augmented, but not changed. In other words, comments can be added, but not removed or changed.
- A method, public String toString() that returns a String which presents the members of the class in a nicely formatted way.
- A Textbook cannot have a negative price or negative number of pages. An attempt to assign these types of attributes to a Textbook should result in a NegativePagesException, or a NegativePriceException. These conditions, and the proper generation of Exceptions, should be tested within your test driver (thing tr's and catch'es).
Notes