Encapsulation in Java - Cheat Sheet
What is Encapsulation?
Encapsulation is the process of wrapping data (variables) and code (methods) together into a single unit (class), and
restricting direct access to some of the object's components.
Definition: Data hiding + controlled access = Encapsulation
Why Use Encapsulation?
- Data Hiding: Prevent direct access to sensitive data.
- Control Access: Expose only necessary info via public methods.
- Code Maintainability: Internal logic change doesn't affect other code.
- Reusability: Well-encapsulated classes are easy to reuse.
- Security: Prevent unauthorized access to internal logic/data.
How to Achieve Encapsulation
1. Declare variables as private.
2. Provide public getter and setter methods to access and modify the data.
Example:
class BankAccount {
private double balance;
public double getBalance() { return balance; }
public void deposit(double amount) { if(amount > 0) balance += amount; }
Encapsulation vs Abstraction
Encapsulation: Hides data | Achieved via access modifiers.
Abstraction: Hides implementation | Achieved via abstract classes/interfaces.
Real-World Examples
- ATM Machine: PIN and balance are private, access via public methods.
Encapsulation in Java - Cheat Sheet
- Car Engine: Internal working is hidden, controls are public.
- Bank System: Data members are private, actions are public methods.
Common Interview Questions
1. What is encapsulation in Java?
2. Why is it important?
3. Can you have encapsulation without setters/getters?
4. Is JavaBeans based on encapsulation?
5. How does it support maintainability?
Advanced Use Cases
- Validation in setters
- Immutable classes (no setters, final fields)
- Thread-safe encapsulation using synchronized methods
Quick Recap Chart
Aspect | Encapsulation
----------------------|----------------------------
Data Visibility | Hidden via private
Access | Controlled with public methods
Keywords | private, public, this
Use Case | Secure, maintainable code
Analogy | ATM - balance hidden, use methods