OOP의 4대 특징
1. 캡슐화 (Encapsulation)
•
객체의 상태(데이터) 를 숨기고, 메소드를 통해서만 접근하도록 만든다.
•
장점: 외부에서 객체 내부를 함부로 건드리지 못하게 막음, 일관성 유지 가능.
public class BankAccount {
private int balance; // 외부에서 직접 접근 못함
public void deposit(int amount) {
if (amount > 0) {
balance += amount;
}
}
public int getBalance() {
return balance;
}
}
Java
복사
2. 상속 (Inheritance)
•
부모 클래스의 기능을 자식 클래스가 물려받아 재사용할 수 있다.
•
장점: 코드 재사용 증가, 확장 용이.
class Animal {
public void sound() {
System.out.println("동물이 소리를 냅니다.");
}
}
class Dog extends Animal {
public void sound() {
System.out.println("멍멍!");
}
}
Java
복사
3. 다형성 (Polymorphism)
•
하나의 타입으로 여러 객체를 가리킬 수 있다.
•
장점: 코드를 유연하게 설계 가능 (ex: 부모 타입으로 자식 객체를 다룰 수 있음).
public class Main {
public static void main(String[] args) {
Animal animal = new Dog(); // 부모 타입으로 자식 객체 사용
animal.sound(); // "멍멍!" 출력
}
}
Java
복사
4. 추상화 (Abstraction)
•
공통된 부분만 추출하여 인터페이스나 추상 클래스로 정의한다.
•
장점: 핵심 로직에 집중, 구현 세부사항은 숨김.
abstract class Shape {
abstract void draw();
}
class Circle extends Shape {
void draw() {
System.out.println("원을 그립니다.");
}
}
Java
복사