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 exposedEncapsulation: 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
- FlexibilityWas this answer clear?