The object of Java TM : introduction to programming using software engineering principles - Riley, David D., 1951- (Addison-Wesley, 2002)