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;

    // Constructor
    public Pet() {
        name = "me";
        typeOfPet = "cat";
        age = 16;
    }

    // Accessor methods
    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 class SportTester {
    public static void main (string[] args) {
        sport volley = new Sport("volleyball", 12); 
        system.out.println(volley);
    }

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


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