Subjects

All subjects Django Java Python React Spring Boot JavaScript PHP
Sign Up Free
Interview question

What is Encapsulation in Java? How do you implement it? Java में Encapsulation क्या है? इसे कैसे implement करें?

Answer

Encapsulation is bundling data (variables) and methods that operate on that data into a single unit (class), and hiding the implementation details. It provides data security and control.

// Encapsulation Example
public class BankAccount {
    // Private variables (data hiding)
    private String accountNumber;
    private double balance;
    private String accountHolder;
    
    // Constructor
    public BankAccount(String accountNumber, String accountHolder, double initialBalance) {
        this.accountNumber = accountNumber;
        this.accountHolder = accountHolder;
        this.balance = initialBalance;
    }
    
    // Getter methods
    public String getAccountNumber() {
        return accountNumber;
    }
    
    public double getBalance() {
        return balance;
    }
    
    public String getAccountHolder() {
        return accountHolder;
    }
    
    // Setter methods with validation
    public void setBalance(double balance) {
        if (balance >= 0) {
            this.balance = balance;
        } else {
            System.out.println('Balance cannot be negative');
        }
    }
    
    // Business logic methods
    public void deposit(double amount) {
        if (amount > 0) {
            balance += amount;
            System.out.println('Deposited: ' + amount);
        }
    }
    
    public boolean withdraw(double amount) {
        if (amount > 0 && amount <= balance) {
            balance -= amount;
            System.out.println('Withdrawn: ' + amount);
            return true;
        }
        System.out.println('Insufficient balance');
        return false;
    }
}

// Usage
public class Main {
    public static void main(String[] args) {
        BankAccount account = new BankAccount('ACC001', 'John', 5000);
        
        // Cannot access private variables directly
        // account.balance = -1000;  // ERROR
        
        // Must use public methods
        account.deposit(1000);
        account.withdraw(2000);
        System.out.println('Balance: ' + account.getBalance());
    }
}

// Benefits of Encapsulation:
// 1. Data Security: Can't access directly
// 2. Validation: Setter can validate data
// 3. Maintainability: Can change implementation without affecting external code
// 4. Flexibility: Can make fields read-only or write-only
// 5. Control: Full control over what data is exposed
Encapsulation: Data और methods को एक unit में bundle करना।

Implementation:
1. Private variables बनाओ
2. Public getter/setter methods बनाओ
3. Validation add करो setters में
4. Business logic protect करो

Benefits:
- Data security
- Validation
- Maintainability
- Flexibility

Was this answer clear?