무지개곰
article thumbnail
반응형

객체지향 프로그래밍(OOP)은 데이터와 행동을 중심으로 구조화된 프로그래밍 패러다임입니다. OOP의 주요 요소는 객체, 클래스, 인스턴스, 메서드, 메시지, 캡슐화, 상속, 다형성 등으로 구성됩니다.


객체 (Object)

  • 정의: 독립적으로 식별 가능한 이름을 가진 단위로, 각 객체는 상태행위를 가짐.
  • 특징:
    • 객체의 상태(State)는 시간에 따라 변할 수 있음.
    • 다른 객체와의 관계 형성이 가능하며, 기억 장소(메모리)를 차지함.
    • 메시지에 반응하는 메서드(Method)를 통해 특정 행동을 수행.

클래스 (Class)

  • 정의: 유사한 객체를 묶어 공통된 속성과 연산(행위)을 정의하는 틀.
  • 특징:
    • 객체를 추상화하여 공통된 속성과 연산을 정의.
    • 슈퍼 클래스(Super Class): 특정 클래스의 상위(부모) 클래스.
    • 서브 클래스(Sub Class): 특정 클래스의 하위(자식) 클래스.
  • 활용: 데이터와 관련 연산을 묶어 객체를 정의하는 단위로 사용.

인스턴스 (Instance)

  • 정의: 클래스에서 생성된 개별 객체.
  • 인스턴스화: 클래스를 기반으로 새 객체를 생성하는 과정.

메서드 (Method)

  • 정의: 클래스에 속한 객체가 수행할 행위를 정의하는 함수.
  • 특징: 전통적 프로그래밍의 함수 또는 프로시저와 유사한 개념으로, 객체를 조작하는 역할을 함.

메시지 (Message)

  • 정의: 객체 간의 행동을 요청하기 위한 방법.
  • 역할: 특정 객체가 다른 객체의 행동을 유도함으로써 상호작용을 가능하게 함.

캡슐화 (Encapsulation)

  • 정의: **데이터(속성)**와 이를 처리하는 함수를 하나로 묶고, 외부 접근을 제한하는 기법.
  • 특징:
    • 정보 은닉: 인터페이스 외의 세부 내용은 감춰져 있어, 외부에서 접근 불가.
    • 장점: 결합도(Coupling)가 낮아지고, 응집도(Cohesion)가 높아져 유지보수와 재사용성이 향상됨.

상속 (Inheritance)

  • 정의: 상위 클래스의 속성과 메서드를 하위 클래스가 물려받는 기법.
  • 장점: 코드의 재사용성을 높이고, 계층 구조로 확장 가능.
  • 다중 상속 (Multiple Inheritance): 한 클래스가 여러 부모 클래스의 속성과 메서드를 상속받는 것.

다형성 (Polymorphism)

  • 정의: 같은 메시지에 대해 서로 다른 객체가 고유한 방식으로 반응하는 능력.
  • 예시: ‘+’ 연산자가 숫자 객체에서는 덧셈, 문자열 객체에서는 문자열 결합으로 작동.
반응형
profile

무지개곰

@무지개곰

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!