Java Reference
In-Depth Information
EXAMPLE: Yet Another Date Class
Display 4.9 contains another, much improved, definition of a class for a date. Note that
all instance variables are private and that two methods are private. We made the meth-
ods dateOK and monthString private because they are just helping methods used in the
definitions of other methods. A user of the class DateFifthTry would not (in fact, can-
not) use either of the methods dateOK or monthString . This is all hidden information
that need not concern a programmer using the class. The method monthString was
public in previous versions of our date classes because we had not yet discussed the pri-
vate modifier. It is now marked private because it is just a helping method.
Note that the class DateFifthTry uses the method dateOK to make sure that any
changes to instance variables make sense. Because the methods of the class DateFifth-
Try use the method dateOK to check for impossible dates, you cannot use any methods,
such as readInput or setDate , to set the instance variables so that they represent an
impossible date like January 63, 2005. If you try to do so, your program would end
with an error message. (To make our definition of the method dateOK simple, we did
not check for certain impossible dates, such as February 31, but it would be easy to
exclude these dates as well.)
The methods dateOK and equals each return a value of type boolean . That means
they return a value that is either true or false and so can be used as the Boolean expres-
sion in an if-else statement, while statement, or other loop statement. This is illus-
trated by the following, which is taken from the definition of the method setDate in
Display 4.9:
if (dateOK(month, day, year))
{
this .month = monthString(month);
this .day = day;
this .year = year;
}
else
{
System.out.println("Fatal Error");
System.exit(0);
}
Note that, although all the instance variables are private, a programmer using the class can
still change or access the value of an instance variable using the methods that start with set
or get . This is discussed more fully in the next subsection, “Accessor and Mutator Methods.”
(continued)
Search WWH ::




Custom Search