객체(Object)

  • 독립적으로 식별 가능한 이름을 가짐
  • 객체가 가질 수 있는 조건인 상태(State)는 일반적으로 시간에 따라 변함
  • 객체와 객체는 상호 연관성에 의한 관계가 형성됨
  • 객체가 반응할 수 있는 메세지의 집합을 행위(연산, Method)라고 하며, 객체는 행위의 특징을 나타냄
  • 객체는 일정한 기억장소를 갖고 있음

클래스(Class) ★★

  • 하나 이상의 유사한 객체들을 묶어서 하나의 공통된 특성을 표현한 것
  • 공통된 속성과 연산(행위)를 갖는 객체의 집합
  • 객체지향 프로그램에서 데이터를 추상화하는 단위
  • 각각의 객체들이 갖는 속성과 연산(Method)을 정의하고 있는 틀
  • 슈퍼 클래스(Super Class)는 특정 클래스의 상위(부모) 클래스
  • 서브 클래스(Sub Class)는 특정 클래스의 하위(자식) 클래스

인스턴스(Instance)

  • 클래스에 속한 각각의 객체
  • 클래스로부터 새로운 객체를 생성하는 것을 인스턴스화(Instantiation)라고 함

메서드(Method)

  • 클래스로부터 생성된 객체를 사용하는 방법
  • 전통적 시스템의 함수(Function)또는 프로시저(Procedure)에 해당하는 연산

메시지(Message)

  • 객체에게 어떤 행위를 하도록 지시하기 위한 방법

캡슐화(Encapsulation) ★

  • 데이터(속성)와 데이터를 처리하는 함수하나로 묶는 것
  • 인터페이스를 제외한 세부 내용이 은폐(정보 은닉)되어 외부 접근이 제한됨
  • 정보 은닉 측면과 가장 밀접한 관계가 있음
  • 외부 모듈의 변경으로 인한 파급 효과가 적음
  • 재사용 용이, 인터페이스 단순해짐
  • 결합도 Down↓ / 응집도 Up↑

상속(Inheritance)

  • 이미 정의된 상위(부모) 클래스의 모든 속성과 연산을 하위(자식) 클래스가 물려받는 것
  • 소프트웨어의 재사용(Reuse)를 높이는 중요한 개념

다중 상속(Multiple Inheritance)

  • 한 개의 클래스가 두 개 이상의 상위(부모) 클래스로부터 속성과 연산을 상속받는 것

다형성(Polymorphism)

  • 하나의 메시지에 대해 각각의 객체(클래스)가 가지고 있는 고유한 방법(특성)으로 응답할 수 있는 능력
    • Ex) + 연산자의 경우 숫자 클래스에서는 덧셈, 문자 클래스에서는 문자열의 연결 기능

댓글남기기