Encapsulation and Abstraction
Encapsulation is the practice of keeping fields private and exposing behavior via public methods.
class BankAccount {
  private double balance = 0;
  public void deposit(double amount) {
    balance += amount;
  }
  public double getBalance() {
    return balance;
  }
}Abstraction hides complex logic and only exposes necessary parts to the user using abstract classes or interfaces.
