Development/Java

객체지향 프로그래밍 (OOP) 완벽 가이드

최라온 2025. 5. 13. 15:57
728x90
반응형
SMALL

객체지향 프로그래밍 (OOP) 완벽 가이드

객체지향 프로그래밍(OOP, Object-Oriented Programming)은 프로그램을 객체 중심으로 설계하고 개발하는 방법론입니다. 유지보수와 확장성이 뛰어나 대규모 시스템 개발에 적합하며, Java, C++, Python, C# 등 현대 프로그래밍 언어의 중심 철학입니다.

1. 객체지향 프로그래밍이란?

객체(Object)와 클래스(Class)를 중심으로 프로그램을 구성하여 데이터와 행동을 하나의 단위로 묶고, 프로그램을 여러 객체들의 협력으로 이루어지게 하는 프로그래밍 방식입니다.

2. 객체지향 프로그래밍의 4대 특징

2.1 캡슐화(Encapsulation)

데이터와 메서드를 하나의 클래스로 묶고, 외부에서 직접 접근하지 못하게 하여 데이터 보호와 무결성을 유지합니다.

class User {
    private String name; // private 접근 제한자

    public User(String name) {
        this.name = name;
    }

    public String getName() { // Getter 메서드
        return name;
    }
}

2.2 상속(Inheritance)

기존 클래스(부모 클래스)의 속성과 기능을 새로운 클래스(자식 클래스)가 물려받아 재사용하거나 확장할 수 있습니다.

class Animal {
    void eat() {
        System.out.println("먹는다");
    }
}

class Dog extends Animal {
    void bark() {
        System.out.println("짖는다");
    }
}

2.3 다형성(Polymorphism)

하나의 메서드가 여러 형태로 동작하거나, 부모 타입으로 여러 자식 객체를 다룰 수 있게 합니다.

Animal animal = new Dog(); // Animal 타입으로 Dog 사용
animal.eat(); // 동적 바인딩에 의해 Dog의 eat 메서드 호출 가능

2.4 추상화(Abstraction)

필요한 속성과 동작만 인터페이스나 추상 클래스로 정의하여 복잡성을 숨기고 공통 인터페이스를 제공합니다.

abstract class Vehicle {
    abstract void move();
}

class Car extends Vehicle {
    void move() {
        System.out.println("자동차가 이동한다");
    }
}

3. 객체지향 프로그래밍의 장점

  • 유지보수 용이: 캡슐화로 코드 변경이 영향이 적다.
  • 재사용성 향상: 상속과 다형성으로 코드 재사용 가능.
  • 확장성: 새로운 기능 추가가 용이하다.
  • 유연성: 인터페이스 기반 설계로 구조 변경 용이.

4. 객체지향 언어 예시

대표적인 객체지향 언어:

  • Java
  • C++
  • Python
  • C#
  • Ruby

5. 결론

객체지향 프로그래밍은 복잡한 시스템을 안정적이고 유연하게 개발할 수 있게 해주는 강력한 프로그래밍 패러다임입니다. 캡슐화, 상속, 다형성, 추상화의 원리를 이해하고 적극 활용하면, 유지보수성이 뛰어난 소프트웨어를 설계할 수 있습니다.

728x90
반응형
LIST