Beginning Java Objects: Chapter 3 Objects and Classes
Behavior/Operations/Methods
Now, let's revisit the same two types of object — a student and a course — and talk about these objects'
respective behaviors. A student's behaviors (relevant to academic matters, that is!) might include:
- Enrolling in a course
- Dropping a course
- Choosing a major field of study
- Selecting a faculty advisor
- Telling you his or her GPA when asked
- Telling you whether or not he or she has taken a particular course, and if so, when the course
was taken, which professor taught it, and what grade the student received
It is a bit harder to think of an inanimate, conceptual object like a course as having behaviors, but if we
were to imagine a course to be a living thing, then we can imagine that a course's behaviors might include:
- Permitting a student to register
- Determining whether or not a given student is already registered
- Telling you how many students have registered so far, or conversely, how many seats remain
before the course is full
- Telling you what its prerequisite courses are
- Telling you how many credit hours it is worth
- Telling you which professor is assigned to teach the course this semester
and so on.
When we talk about software objects specifically, we define an
object's behaviors, also known as its operations, as both the things that an object does to
access its data (attributes), and the things that an object does to modify/maintain its data (attributes).
If we take a moment to reflect back on the behaviors we expect of a student as listed above, we see that
each operation involves one or more of the student's attributes. For example:
- Telling you his or her GPA involves accessing the value of the student's 'GPA' attribute
- Choosing a major field of study updates the value of the student's 'major' attribute
- Enrolling in a course updates the value of the student's 'course load' attribute
Since we recently learned that the collective set of attribute values for an object defines its state, we now
can see that operations are capable of changing an object's state.
Let's say that we define the state of a student who has not yet selected a major field of study as an
'undeclared' student. Asking a student object representing an 'undeclared' student to perform its
'choosing a major field of study' method, will cause that object to update the value of its 'major field of
study' attribute to reflect the newly selected major field. This then changes the student's state from
'undeclared' to 'declared'.
Yet another way to think of an object's operations are as services that can be requested of the object. For
example, one service that we might call upon a course object to perform, is to provide us with a list of
all of the students who are currently registered for the course (a.k.a. a student roster).
When we actually get around to programming an object in a language like Java, we refer to the
programming language representation of an operation as a method, whereas, strictly speaking, the term
'operation' is typically used to refer to a behavior conceptually. However, these two terms are often used
interchangeably, and we'll do so throughout the rest of this book.
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.
|