Object-Oriented Programming and Java