Chapter 5. Introduction to Object-Oriented Design in Java

In this chapter, we will consider several techniques relevant to object-oriented design (OOD) in Java.

We’ll look at how to work with Java’s objects, covering the key methods of Object, aspects of object-oriented design, and implementing exception handling schemes. Throughout the chapter, we will be introducing some design patterns—essentially best practices for solving some very common situations that arise in software design. Toward the end of the chapter, we’ll also consider safe programs—those that are designed so as not to become inconsistent over time.

Note

This chapter is intended to showcase some examples of a complex topic and a few underlying principles. We encourage you to consult additional resources, such as Effective Java by Josh Bloch.

We’ll get started by considering the subject of Java’s calling and passing conventions and the nature of Java values.

Java Values

Java’s values, and their relationship to the type system, are quite straightforward. Java has two types of values: primitives and object references.

Note

There are only eight different primitive types in Java, and new primitive types cannot be defined by the programmer.

The key difference between primitive values and references is that primitive values cannot be altered; the value 2 is always the same value. By contrast, the contents of object references can usually be changed—often referred to as mutation of object contents.

Also note that variables ...

Get Java in a Nutshell, 8th Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.