Beginning Java Objects: Chapter 3
Objects and Classes
Objects are the fundamental building blocks of an object-oriented
(OO) system. Just as abstraction involves producing a model of
the real world as we discussed in Chapter 2, objects are 'mini
abstractions' of various real-world components.
In this chapter, you will learn:
- What makes up a software object.
- How we use classes to specify an object's data and behavior.
- How we create objects based on a class definition.
- How objects keep track of one another.
What Is an Object?
Before we talk about software objects, let's talk about real-world objects in general. According to
Merriam-Webster's dictionary, an object is:
"(1) Something material that may be perceived by the senses; (2) something mental or physical
toward which thought, feeling, or action is directed."
The first part of this definition refers to objects as we typically think of them: as physical 'things' that we
can see and touch, and which occupy space. Because we intend to use the Student Registration System
(SRS) case study as the basis for learning about objects throughout this book, let's think of some
examples of physical objects that make sense in the general context of an academic setting, namely:
- The students who attend classes
- The professors who teach them
- The classrooms in which class meetings take place
- The furniture in these classrooms
- The buildings in which the classrooms are located
- The textbooks students use
and on and on. Of course, while all of these objects are commonly found on a typical college campus,
not all of them are relevant to registering students for courses, nor are they all necessarily called out by
the SRS case study; but, we won't worry about that for the time being. In Part 2 of this book, we'll learn
a technique for using a requirements specification as the basis for identifying which objects are relevant
to a particular abstraction.
Now, let's focus on the second half of the definition,
particularly on the phrase 'something mental ... toward which
thought, feeling, or action is directed'. There are a great
many conceptual objects that play important roles in an
academic setting; some of these are:
- The courses that students attend
- The departments that faculty works for
- The degrees that students receive
and, of course, many others. Even though we can't see, hear, touch, taste, or smell them, conceptual
objects are every bit as important as physical objects are in describing an abstraction.
Let's now get a bit more formal, and define a software object:
"A (software) object is a software construct that bundles
together data (state) and functions (behavior) which, taken together,
represent an abstraction of a 'real-world' (physical or conceptual) object."
Let's explore the two sides of objects — their state and behavior —
separately, in more depth.
New on the Java Boutique:
New Review:
Time Management Made Easy with the Quartz Enterprise Job Scheduler
Why not just use the Java timer API? This open source scheduling
API boasts simplicity, ease-of-integration, a well-rounded feature
set, and it's free!
New Applet:
Reverse Complement
Reverse Complement is a simple applet that converts DNA or RNA
sequences into three useful formats.
Elsewhere on internet.com:
WebDeveloper Java
Lots of Java information on webdeveloper.com
WDVL Java
Thorough Java resource at the Web Developer's Virtual Library.
ScriptSearch Java
Hundreds of free Java code files to download.
jGuru: Your View of the Java Universe
Customizable portal with online training, FAQs, regular news updates, and tutorials.