개발자꿈나무

객체지향 특징 본문

CS/소프트웨어공학

객체지향 특징

망재이 2024. 1. 2. 10:55
  • 캡슐화 (Encapsulation)
    - 데이터와 데이터를 처리하는 함수를 하나로 묶는 것
    - 캡슐화된 객체는 인터페이스를 제외한 세부 내용이 은폐되어 외부에서의 접근이 제한적이기 때문에 외부 모듈의 변경으로 인한 파급 효과가 적음
    - 캡슐화된 객체들은 재사용이 용이
    - 객체들 간의 메시지를 주고받을 때 상대 객체의 세부 내용은 알 필요가 없으므로 인터페이스가 단순해지고, 객체 간의 결합도 낮아짐
  • 상속 (Inheritance)
    - 이미 정의된 상위 클래스의 모든 속성과 연산을 하위 클래스가 물려받는 것
    - 상속을 이용하면 하위 클래스는 상위 클래스의 모든 속성과 연산을 자신의 클래스 내에서 다시 정의하지 않고도 사용할 수 있음
    - 하위 클래스는 상위 클래스로부터 상속받은 속성과 연산 외에 새로운 속성과 연산을 추가하여 사용할 수 있음
    - 상위 클래스의 속성과 연산을 하위 클래스가 사용할 수 있기 때문에 객체와 클래스의 재사용을 높이는 중요한 개념
  • 다중 상속 (Multiple Inheritance) : 한 개의 클래스가 두 개 이상의 상위 클래스로부터 속성과 연산을 상속받는 것
  • 다형성 (Polymophism)
    - 메시지에 의해 객체가 연산을 수행하게 될 때 하나의 메시지에 대해 각각의 객체가 가지고 있는 고유한 방법으로 응답할 수 있는 능력
    - 객체들은 동일한 메소드명을 사용하며 같은 의미의 응답을 함
    - 응용 프로그램 상에서 하나의 함수나 연산자가 두 개 이상의 서로 다른 클래스의 인스턴스들을 같은 클래스에 속한 인스턴스처럼 수행할 수 있도록 하는 것
    ex1: '+' 연산자의 경우 숫자 클래스에서는 덧셈, 문자 클래스에서는 문자열의 연결 기능을 담당
    ex2: 오버로딩(Overloading) 기능의 경우 메소드 이름은 같지만 매개변수의 자료형과 개수를 달리하여 여러 기능을 정의할 수 있음
    ex3: 오버라이딩(Overriding) 기능의 경우 상위 클래스에서 정의한 메소드와 이름은 같지만 메소드 안의 실행 코드를 달리하여 자식 클래스에서 재정의해서 사용할 수 있음

  • 연관성 (Relationship)
    - 두 개 이상의 객체들이 상호 참조하는 관계를 말함
종류 의미 특징
is member of 연관화 (Association) 2개 이상의 객체가 상호 관련되어 있음
is instance of 분류화 (Classfication) 동일한 형의 특성을 갖는 객체들을 모아 구성
is part of 집단화 (Aggregation) 관련있는 객체들을 묶어 하나의 상위객체 구성
is a 일반화 (Generalization) 공통적인 성질들로 추상화한 상위 객체를 구성
특수화 / 상세화 (Specialization) 상위 객체를 구체화하여 하위 객체를 구성

 

728x90

'CS > 소프트웨어공학' 카테고리의 다른 글

개발 지원 도구  (2) 2024.01.03
객체지향 분석 및 설계  (4) 2024.01.02
객체지향 구성요소  (0) 2024.01.01
아키텍처 패턴  (1) 2023.12.29
소프트웨어 아키텍처 뷰, 품질 속성  (0) 2023.12.28