The Essence of Object-Oriented Programming with Java? and UML