Java Reference
In-Depth Information
they must return something equivalent to those values. For example, the method
getMonth returns the number of the month, even though the month is stored in a
String instance variable. Although it is not required by the Java language, it is a gen-
erally accepted good programming practice to spell the names of accessor methods
starting with get .
Mutator methods allow you to change the data in a class object. In Display 4.9,
the methods whose names begin with the word set are mutator methods. It is a gen-
erally accepted good programming practice to use names that begin with the word
set for mutator methods. Your class definitions will typically provide a complete set
of public accessor methods and typically at least some public mutator methods.
There are, however, important classes, such as the class String , that have no public
mutator methods.
At first glance, it may look as if accessor and mutator methods defeat the purpose of
making instance variables private, but if you look carefully at the mutator methods in
Display 4.9, you will see that the mutator and accessor methods are not equivalent to
making the instance variables public. Notice the mutator methods, that is, the ones
that begin with set . They all test for an illegal date and end the program with an error
message if there is an attempt to set the instance variables to any illegal values. If the
variables were public, you could set the data to values that do not make sense for a
date, such as January 42, 1930. With mutator methods, you can control and filter
changes to the data. (As it is, you can still set the data to values that do not represent a
real date, such as February 31, but as we already noted, it would be easy to exclude
these dates as well. We did not exclude these dates to keep the example simple. See
Self-Test Exercise 19 for a more complete date check method.)
mutator
methods
Display 4.9 Yet Another Date Class (part 1 of 4)
1
import java.util.Scanner;
2 public class DateFifthTry
3{
4
private String month;
5
private int day;
6
private int year; //a four digit number.
7
public void writeOutput()
8
{
9
System.out.println(month + " " + day + ", " + year);
10
}
Note that this version of readInput has the user
enter the month as an integer rather than as a
string. In this class, a month is an integer to the
user, but is a string inside the class.
11
public void readInput()
12
{
(continued)
Search WWH ::




Custom Search