../_images/time455.png

5.5. Mutator Methods

Corresponding to each get method, programmers also provide a public set method to change the value of a private instance variable in a class. These are called mutator methods (or settters or set or modifier methods). They are void methods meaning that they do not return a value, but they do take a parameter, the new value for the instance variable. Here are some examples of how to write a set method for an instance variable:

class ExampleTemplate {

    //Instance variable declaration
    private typeOfVar varName;

    // Mutator (setter) method template
    public void setVarName(typeOfVar newValue)
    {
       varName = newValue;
    }
}

Here’s an example of the Student class with a mutator method called setName():

class Student {

   //Instance variable name
   private String name;

   /** setName sets name to newName
    *  @param newName                */
   public void setName(String newName)
   {
      name = newName;
   }

   public static void main(String[] args)
   {
      // To call a set method, use objectName.setVar(newValue)
      Student s = new Student();
      s.setName("Ayanna");
   }
  }

Notice the difference between set (mutator) and get (accessor) methods in the following figure. Getters return an instance variable’s value and have the same return type as this variable and no parameters. Setters have a void return type and take a new value as a parameter to change the value of the instance variable.

../_images/get-set-comparison.png

Figure 1: Comparison of set and get methods

coding exercise Coding Exercise

Try the Student class below which this time has set methods added. You will need to fix one error. The main method is in a separate Tester class and does not have access to the private instance variables in the other Student class. Change the main method so that it uses a public mutator method (set method) to access the value instead.

Fix the main method to include a call to the appropriate set method.

exercise Check your understanding

Mutator methods do not have to have a name with “set” in it, although most do. They can be any methods that change the value of an instance variable or a static variable in the class, as can be seen in the AP Practice questions below.

5.5.1. groupwork Programming Challenge : Class Pet Setters

Animal Clinic
  1. Copy your Awesome Animal Clinic Pet class from the last lesson into this Active Code window.

  2. Add set methods for each of the 5 instance variables. Make sure you use good commenting!

  3. Test each of the set methods in the main method.

Create a Pet class that keeps track of the name, age, weight, type of animal, and breed for records at an animal clinic with 2 constructors, accessor (get) methods, a toString method, and mutator (set) methods for each instance variable.

5.5.2. Summary

  • A void method does not return a value. Its header contains the keyword void before the method name.

  • A mutator method is often a void method that changes the values of instance variables or static variables.

5.5.3. AP Practice

You have attempted of activities on this page