티스토리 뷰
객체지향이란
- 현실세계의 개체를 기계의 부품처럼 하나의 객체로 만들어, 기계적인 부품들을 조립하여 제품 만들듯이 소프트웨어를 개발하는 기법
- 구성요소와 개념
- 객체
- 클래스
- 캡슐화
- 상속
- 다형성
- 연관성
1) 객체
- 데이터와 함수를 묶어놓은(캡술화한) 하나의 소프트웨어 모듈
- 특징
- 독립적으로 식별 가능한 이름 가지고 있다.
- 조건에는 상태가 있으며, 시간에 따란 변한다.
- 객체간에는 상호연관성에 의한 관계가 형성된다.
- 객체가 반응할 수 있는 메시지의 집합을 행위라 한다.
- 일정한 기억장소를 가지고 있다.
- 객체의 메소드는 다른 객체로부터 메시지를 받았을 때 기능을 수행한다.
2) 클래스
- 공통된 속성과 연산을 갖는 객체의 집합
- 데이터를 추상화하는 단위
- 클래스에 속한 각각의 객체를 인스턴스라고 하며, 새로운 객체를 생성하는 것을 인스턴스화라고 한다.
3) 캡슐화
- 데이터(속성)과 데이터를 처리하는 함수를 하나로 묶는 것
- 인터페이스를 제외한 세부 내용이 은폐되어 외부에서 접근 제한적
- 재사용 용이 / 인터페이스 단순 / 객체 간의 결합도 낮아짐
4) 상속
- 상위 클래스의 모든 속성과 연산을 하위 클래스가 물려받는 것
- 그 외에 새로운 속성과 연산을 첨가하여 사용할 수 있다.
5) 다형성
- 여러가지 형태를 가지고 있다는 의미로 하나의 메시지에 대해 여러가지 형태의 응답이 있다는 것을 의미
6) 연관성
종류 | 의미 | 특징 |
is member of | 연관화 | 2개 이상 객체 상호연관 |
is instance of | 분류화 | 동일 특성 객체들 모아 구성 |
is part of | 집단화 | 관련 객체들 모아 상위 객체 구성 |
is a | 일반화 / 상세화 | 추상화/ 구체화 → 상위/하위 객체 |
'CS' 카테고리의 다른 글
아키텍처 패턴 (0) | 2024.01.28 |
---|---|
소프트웨어 아키텍처 (0) | 2024.01.28 |
스크럼 기법 (0) | 2024.01.26 |
소프트웨어 생명주기 (0) | 2024.01.26 |
Comments
최근에 올라온 글