What is the name of a class that has only accessor methods and no mutators methods?

  • Accessor and Mutator in Java – Introduction
  • Accessor Method in Java
  • Mutator Method in Java
  • Accessor and Mutator Examples
    • Example 1: Accessor and Mutator methods in Student class
    • Example 2: Accessor and Mutator methods in Bank Class
  • Summary
  • References

Accessor and Mutator in Java - Introduction

In java, public methods that are used to get and set the value of the private variable are refereed as a Accessor and Mutator respectively. They are also referred as a getter and setter method respectively. Some popular IDE's like Netbeans, Eclipse, IntelliJ etc. creates accessor and mutator method automatically.

Accessor Method in Java

In java, Accessor method are used to access the property of an object. In other words, Accessor method act as a mediator to access the private variable by methods outside a class or some other class. Hence, we can say that accessor method is used to provide encapsulation. The Accessor method is also known as a getter method.

It is a general convention to write the accessor methods name beginning with the get word. So that they are easily spotted in the class. Accessor method must be declared as public methods. Although, Accessor methods do not accept any parameters. But, they return a value of a private variable. Therefore, it access the private variable and return that from the function. Generally, We have to write more than one accessor method with different names in the class to return private variables.

The statement below shows the syntax of Accessor method in Java.

public returntype getmethodname() {
    return value;
}

Example 1:In this example, we will initialize the private variable sid and name using constructor and then using getter method to retrieve the values. As, a method can return only one value at a time, we have to write multiple accessors to retrieve the values of private variables.

// Program to demonstrate Accessor in java
public class Student {
    // private class variable
    private int sid;
    private String name;

    // constructor
    Student(int s, String n) {
        this.sid = s;
        this.name = n;
    }

    // Accessor method to get sid and name
    public int getSid() {
        return sid;
    }
    public String getName() {
        return name;
    }

    // Main method
    public static void main(String s[]) {
        Student st = new Student(12, "john");

        // Calling accessor method
        System.out.println("Student id  - " + st.getSid());
        System.out.println("Student Name  - " + st.getName());
    }
} 

Output

Student id  - 12
Student Name  - john

Mutator Method in Java

In java, Mutator method are used to change the properties of an object. In other words, Mutator method initialize or change the value of the instance variable of the class or a private variable of the class. Hence, we can say that mutator method is used to provide encapsulation. A Mutator method is also known as a Setter method or Modifiers.

It is a general convention to write the mutator methods name beginning with the set word. So that they are easily spotted in the class. Mutator method must be declared as public methods. Although, Mutator methods do not have any return type. But, they can accept a parameter depending on the data type of private variable. Thereafter, it will access the private variable using keyword this and set its value as received in the parameter. We can write more than one mutator method with different names in the class.
The statement below shows the syntax of Accessor method in Java.

public void setmethodname(parameter1, parameter2, ...) {
    // sets the value of private variables from the parameters
}

Example 1:

// Program to demonstrate mutator in java
public class Student {
    // Declaring private class variable
    private int sid;
    private String name;

    // Mutator method to set multiple details
    public void setDetails(int s, String n) {
        System.out.println("Inside setter method");
        // Accessing class variable using this keyword
        this.sid = s;
        this.name = n;
    }

    // Main method
    public static void main(String s[]) {
        Student st = new Student();
        // Calling mutator method
        st.setDetails(12, "John");
    }
}

Output

Inside setter method

Example 1: Accessor and Mutator methods in Student class

In this example, we are using both accessor and mutator to get and set the personal details of a student. We can use mutator method to restrict storing some invalid data. Here in the example, we will throw an IllegalArgumentException if the length of name is less than 3 characters. Similarly, we can write an appropriate conditions to restrict the type of values stored in the variable.

// Program to demonstrate the accessor and mutator in java
public class student {
    // Declaring Class variables
    private int sid;
    private String name;
    private long contact;

    // Accessor methods
    public int getSid() {
        return sid;
    }
    public String getName() {
        return name;
    }
    public long getContact() {
        return contact;
    }

    // Mutator methods
    public void setDetails(int s, String n, long c) {
        if (n.length() & lt; 3) throw new IllegalArgumentException("Name should be greater than 3 chars long");
        else
            this.name = n;

        this.sid = s;
        this.contact = c;
    }

    // Main
    public static void main(String s[]) {
        student st = new student();
        student st1 = new student();
        st.setDetails(11, "John", 234998723);
        System.out.println("Student id  - " + st.getSid());
        System.out.println("Student Name  - " + st.getName());
        System.out.println("Student Contactno  - " + st.getContact());

        st1.setDetails(12, "qq", 987655678);
        System.out.println("Student id  - " + st1.getSid());
        System.out.println("Student Name  - " + st1.getName());
        System.out.println("Student Contactno  - " + st1.getContact());
    }
}

Output

Student id  - 11
Student Name  - John
Student Contactno  - 234998723
Exception in thread "main" java.lang.IllegalArgumentException: Name should be greater than 3 chars long
	at student.setDetails(student.java:24)
	at student.main(student.java:38)

Example 2: Accessor and Mutator methods in Bank Class

In this example, we are using both accessor and mutator to get and set the personal details of a customer in a bank. We can use mutator method to restrict storing some invalid data. Here in the example, we will keep minimum deposit amount as 1000. So, we will throw an IllegalArgumentException if the amount is less than 1000. Similarly, we can write an appropriate conditions to restrict the type of values stored in the variable.

// Program to demonstrate the accessor and mutator in java
public class Bank {
    // Declaring Class variables
    private long accno;
    private String name;
    private String acctype;
    private double amount;

    // Accessor methods
    public long getAccno() {
        return accno;
    }
    public String[] getDetails() {
        String temp[] = {
            name,
            acctype
        };
        return temp;
    }
    public double getAmount() {
        return amount;
    }

    // Mutator methods
    public void setDetails(long a, String n, String t, double c) {
        this.accno = a;
        this.acctype = t;
        if (n.length() & lt; 3) throw new IllegalArgumentException("Name should be greater than 3 chars long");
        else
            this.name = n;

        if (c & lt; 1000) throw new IllegalArgumentException("Minimum Deposit 1000 required");
        else
            this.amount = c;

    }

    // Main
    public static void main(String s[]) {
        Bank b1 = new Bank();
        Bank b2 = new Bank();
        b1.setDetails(11335566, "John", "Savings", 1000);
        System.out.println("Customer Account no  - " + b1.getAccno());
        String temp[] = b1.getDetails();
        System.out.println("Custormer Name - " + temp[0]);
        System.out.println("Custormer Account Type - " + temp[1]);
        System.out.println("Customer Balance  - " + b1.getAmount());

        b2.setDetails(12223344, "Kim", "Current", 750);
        System.out.println("Customer Account no  - " + b2.getAccno());
        temp = b2.getDetails();
        System.out.println("Custormer Name - " + temp[0]);
        System.out.println("Custormer Account Type - " + temp[1]);
        System.out.println("Customer Balance  - " + b2.getAmount());
    }
}

Output

Customer Account no  - 11335566
Custormer Name - John
Custormer Account Type - Savings
Customer Balance  - 1000.0
Exception in thread "main" java.lang.IllegalArgumentException: Minimum Deposit 1000 required
	at Bank.setDetails(Bank.java:29)
	at Bank.main(Bank.java:47)

Summary

The knowledge of Accessor and Mutator is very useful as it implements encapsulation, which is one of the important feature of Object oriented Programming. When we want our class to be used by external clients or external classes, we can build methods for each private data variable using accessor and mutator. Thereafter, we will need to declare public methods to operate on private data. In this tutorial, we covered the way to create accessor and mutator methods in Java with example. All in all, this tutorial, covers everything that you need to know in order to understand the Accessor and Mutator methods in Java.

References

Accessor
Mutator
Accessor and Mutator Methods

What is another name for the accessor methods?

Accessor methods, also called get methods or getters, allow a way to get the value of each instance variable from outside of the class.

What is the difference between a getter method and an accessor method?

A getter method allows you to get the value of a field while an accessor method sets the value of the field.

What is an instance method?

An instance method is a method that belongs to instances of a class, not to the class itself. To define an instance method, just omit static from the method heading. Within the method definition, you refer to variables and methods in the class by their names, without a dot.

What is the difference between an accessor method and a mutator method quizlet?

What is the difference between an accessor method and a mutator method? An accessor provides the client access to data in the object, while a mutator lets the client change the object's state.