public class Book { private String title; private int pages; public Book(String title, int pages) { setTitle(title); setPages(pages); } public void setTitle(String title) { if (title == null) throw new IllegalArgumentException("null title"); this.title = title; } public String getTitle() { return title; } public void setPages(int pages) { if (pages < 0) throw new IllegalArgumentException("negative pages"); this.pages = pages; } public int getPages() { return pages; } public String toString() { return "Book: title: " + title + " pages: " + pages; } public boolean equals(Object rhs) { if (rhs instanceof Book) { Book b = (Book) rhs; return title.equals(b.title) && pages == b.pages; } return false; } public static void main(String[] args) { Book javaProgLang = new Book("The Java Programming Language", 333); System.out.println(javaProgLang); Book mobyDick = new Book("Moby Dick", -2048); System.out.println(mobyDick); Book badBook = new Book(null, 256); System.out.println(badBook); } }