[c언어] 객체 지향 프로그래밍의 개념적 이해

객체 지향 프로그래밍은 소프트웨어를 객체들의 모음으로 바라보고, 이 객체들 간의 상호작용을 통해 프로그램을 개발하는 프로그래밍 패러다임입니다.

객체(Object)

객체는 현실 세계의 개체나 개념을 모델링한 것으로, 속성(데이터)과 행위(메서드)를 가지고 있습니다.

class Car {
  private:
    int speed;
  public:
    void setSpeed(int s) {
      speed = s;
    }
};

클래스(Class)

클래스는 객체의 청사진으로, 객체를 생성하기 위한 상태와 행위를 정의합니다. 객체를 인스턴스화할 때 이러한 상태와 행위를 가집니다.

상속(Inheritance)

상속은 한 클래스가 다른 클래스의 특성을 이어받는 것을 의미하며, 코드의 재사용성과 유지보수성을 높여줍니다.

다형성(Polymorphism)

다형성은 같은 이름의 메서드가 서로 다른 클래스에서 다르게 동작하는 것을 말합니다. 이는 코드의 유연성을 증가시켜줍니다.

캡슐화(Encapsulation)

캡슐화는 객체의 상태와 행위를 외부로부터 감추는 것을 의미하며, 객체의 내부 구현을 숨기고 외부에서 접근할 수 있는 인터페이스를 제공합니다.

객체 지향 프로그래밍은 모듈화, 재사용성, 유지보수성 등을 향상시키는 장점을 가지고 있어, 현대 소프트웨어 개발에서 널리 사용되고 있습니다.

참고 자료