What is an accessor method?

  • Allow safe access to instance variables
    • Prevents access to variables from outside
  • AKA “get methods” or “getters”
  • If another class or a function needs access to the variable, you use an accessor method

Example:

public class snack { 
    private String name; 
    private int calories; 

    public Snack() { 
        name ""; 
        calories = 0; 
    }

    public Snack (string n, int c) { 
        name = n; 
        calories = c; 
    }

    public String getName(){
        return Name; 
    }

    public int getCalories() { 
        return calories; 
    }
}

Private Instance Variables:

private String name; private int calories;

Default Constructors

public Snack() { name ""; calories = 0; }

Overload Constructor

public Snack (string n, int c) { name = n; calories = c; }

Accessor Methods

` public String getName(){ return Name; }`

public int getCalories() { return calories; }

  • Return command reciprocate a copy of the instance variable

Requirements

  • Accessor Methods must be public
  • Return type must match the variable type
    • int = int
    • string = string
    • etc
  • REMEMBER PRINTING A VALUE IS NOT THE SAME AS RETURNING
  • Name appropriately
    • Often is getNameOfVariable
  • No parameters

Notice how the methods from the example match: public String getName(){ and public int getCalories()

Accessors Diagram

Popcorn Hack #1:

Below is a constructor of a class, write the acccessor methods for all instance variables.

public class Pet { 

    private String Name; 
    private String typeOfPet; 
    private int age;

    public Pet(String name, String petType, int petAge)
    {
        Name = name;
        typeOfPet = petType;
        age = petAge;
    }

    public String getName()
    {
        return Name;
    }

    public String getTypeOfPet()
    {
        return typeOfPet;
    }

    public int getAge()
    {
        return age;
    }
}

How can we print out all the information about an instance of an object?

public static class SportTester {

    String name;
    int playerCount; 
    public SportTester(String sportName, int numPlayers)
    {
        name = sportName;
        playerCount = numPlayers;
    }

    public String toString(String sportName, int numPlayers) {
        return "Sport: " + sportName + ", Players: " + numPlayers;
    }
}

        SportTester volley = new SportTester("volleyball", 12); 
        System.out.println(volley);
        System.out.println(volley.toString("volleyBall",12));

/* see what it prints out 
   This is called hash code in hexadecimal form*/


REPL.$JShell$12$SportTester@5ccb03d6
Sport: volleyBall, Players: 12