객체지향프로그래밍(OOP)의 핵심 특징 4가지 완벽 정리

✨ 개요

객체지향프로그래밍(OOP: Object-Oriented Programming)은 복잡한 문제를 객체 단위로 나누어 해결하는 효율적이고 유지보수하기 쉬운 소프트웨어 설계 방식입니다.
Java, Kotlin, Swift, C++, Python 등 다양한 언어에서 채택하며 실무에서도 가장 많이 쓰이는 패러다임입니다.


1. ✅ 캡슐화 (Encapsulation)

class User {
    private var age: Int = 0

    fun setAge(value: Int) {
        if (value >= 0) age = value
    }

    fun getAge(): Int = age
}

2. ✅ 상속 (Inheritance)

open class Animal(val name: String) {
    open fun speak() = println("$name makes a sound")
}

class Dog(name: String) : Animal(name) {
    override fun speak() = println("$name barks")
}

3 ✅. 다형성 (Polymorphism)

val animals = listOf(Animal("Fox"), Dog("Buddy"))
animals.forEach { it.speak() }
// 출력: Fox makes a sound, Buddy barks

4 ✅. 추상화 (Abstraction)

interface Animal {
    fun speak()
}

class Cat : Animal {
    override fun speak() = println("Meow")
}

5.🧠 요약비교

특징 설명 Kotlin 예시 키워드
캡슐화 내부 구현 숨기고 외부에는 메서드만 노출 private, getter/setter
상속 부모 클래스의 속성과 메서드 상속받아 재사용 open, override, :
다형성 동일한 함수가 객체에 따라 다르게 동작 override, interface, abstract
추상화 공통 인터페이스 정의 후 구체적 구현은 하위 클래스에 위임 interface, abstract class

6.🧠 결론



Related Posts