개발자꿈나무
객체지향 특징 본문
- 캡슐화 (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 |