Jump into concepts and practice - no test required
or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Recall & Review
beginner
What is a getter method in Java?
A getter method is a public method that returns the value of a private variable. It allows controlled access to the variable from outside the class.
Click to reveal answer
beginner
What is a setter method in Java?
A setter method is a public method that sets or updates the value of a private variable. It allows controlled modification of the variable from outside the class.
Click to reveal answer
beginner
Why do we use getter and setter methods instead of making variables public?
Getter and setter methods protect the data by controlling how variables are accessed or changed. This helps keep the data safe and allows adding checks or rules when getting or setting values.
Click to reveal answer
beginner
Show a simple example of a getter and setter for a private variable 'age' in Java.
private int age;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
Click to reveal answer
intermediate
Can setter methods include validation? Give an example.
Yes, setter methods can check values before setting them. For example, to ensure age is not negative:
public void setAge(int age) {
if (age >= 0) {
this.age = age;
} else {
System.out.println("Age cannot be negative.");
}
}
Click to reveal answer
What does a getter method do?
AReturns the value of a private variable
BSets the value of a private variable
CDeletes a variable
DCreates a new variable
✗ Incorrect
A getter method returns the value of a private variable to allow read access.
Why use setter methods instead of making variables public?
ATo control how variables are changed and add validation
BTo make code slower
CTo hide variables completely
DTo avoid using methods
✗ Incorrect
Setter methods allow control and validation when changing variable values.
Which keyword is used inside a setter to refer to the current object's variable?
Asuper
Bself
Cthis
Dcurrent
✗ Incorrect
The keyword 'this' refers to the current object's variable inside methods.
What is the typical access level of getter and setter methods?
Adefault (package-private)
Bprivate
Cprotected
Dpublic
✗ Incorrect
Getter and setter methods are usually public to allow access from outside the class.
Which of these is a valid setter method signature for a variable 'name' of type String?
Aprivate void setName()
Bpublic void setName(String name)
Cpublic String getName()
Dpublic int setName(String name)
✗ Incorrect
A setter method returns void and takes a parameter of the variable's type.
Explain what getter and setter methods are and why they are important in Java.
Think about how to safely access and change private data.
You got /5 concepts.
Write a simple Java class with a private variable and add getter and setter methods for it, including validation in the setter.
Use if statement inside setter to check values.
You got /5 concepts.
Practice
(1/5)
1. What is the main purpose of getter and setter methods in Java?
easy
A. To create new objects from a class
B. To control access to private variables by reading and updating their values
C. To perform arithmetic operations on variables
D. To print values directly to the console
Solution
Step 1: Understand the role of getters and setters
Getters and setters are methods used to access and modify private variables safely.
Step 2: Identify their purpose in encapsulation
They help protect data by controlling how variables are read or changed from outside the class.
Final Answer:
To control access to private variables by reading and updating their values -> Option B
Hint: Setter methods are void and assign parameter to this.variable [OK]
Common Mistakes:
Using return type int for setter
Assigning instance variable to parameter instead of reverse
Making setter private
3. What will be the output of the following code?
public class Person {
private String name;
public String getName() { return name; }
public void setName(String name) { this.name = name; }
public static void main(String[] args) {
Person p = new Person();
p.setName("Alice");
System.out.println(p.getName());
}
}
medium
A. Alice
B. null
C. Compilation error
D. Empty line
Solution
Step 1: Trace the setter method call
The setName method sets the private variable name to "Alice".
Step 2: Trace the getter method call
The getName method returns the value of name, which is now "Alice".
Final Answer:
Alice -> Option A
Quick Check:
Setter sets "Alice", getter returns "Alice" [OK]
Hint: Setter sets value, getter returns it [OK]
Common Mistakes:
Expecting null because variable is private
Thinking code causes compilation error
Assuming output is empty line
4. Identify the error in this setter method and choose the correct fix:
public void setScore(int score) {
score = score;
}
medium
A. Remove parameter from method
B. Change method return type to int
C. Make method private
D. Use this.score = score; to assign parameter to instance variable
Solution
Step 1: Understand variable shadowing
The parameter score shadows the instance variable score, so score = score; assigns parameter to itself.
Step 2: Fix assignment using this
Use this.score = score; to assign the parameter value to the instance variable.
Final Answer:
Use this.score = score; to assign parameter to instance variable -> Option D
Quick Check:
Use this.variable = parameter to fix shadowing [OK]
Hint: Use this.variable to avoid shadowing in setters [OK]
Common Mistakes:
Assigning parameter to itself
Changing return type incorrectly
Making setter private unnecessarily
5. You have a class with a private int field temperature. You want to ensure the temperature can only be set between 0 and 100. Which setter method correctly enforces this rule?
hard
A. public void setTemperature(int temperature) { if (temperature < 0 || temperature > 100) this.temperature = 0; else this.temperature = temperature; }
B. public void setTemperature(int temperature) { this.temperature = temperature; }
C. public int setTemperature(int temperature) { if (temperature > 0) this.temperature = temperature; return temperature; }
D. public void setTemperature(int temperature) { if (temperature >= 0 && temperature <= 100) this.temperature = temperature; }
Solution
Step 1: Understand the requirement
The setter must only allow values between 0 and 100 inclusive.
Step 2: Analyze each option
public void setTemperature(int temperature) { if (temperature >= 0 && temperature <= 100) this.temperature = temperature; } sets temperature only if in range but does nothing if out of range (temperature remains unchanged). public void setTemperature(int temperature) { if (temperature < 0 || temperature > 100) this.temperature = 0; else this.temperature = temperature; } sets temperature to 0 if out of range, enforcing a default safe value.
Step 3: Choose the best enforcement
public void setTemperature(int temperature) { if (temperature < 0 || temperature > 100) this.temperature = 0; else this.temperature = temperature; } actively prevents invalid values by resetting to 0, ensuring temperature is always valid.
Final Answer:
public void setTemperature(int temperature) { if (temperature < 0 || temperature > 100) this.temperature = 0; else this.temperature = temperature; } -> Option A
Quick Check:
Setter enforces range with else and default value [OK]
Hint: Use if-else to enforce valid range in setter [OK]