Object(=Entity) 정의
- informal : SW뿐만 아니라 일반적인 모든 사물 (physical(ex. truck...), conceptual(ex. chemical process...) or software(ex. linked list...), informally)
- formal : 유니크한 ID가 있고 다른 것과 구별되는 boundary가 있고 내부에 attribute와 operations을(꼭 둘 다 가지고 있어야함) 가지고 있는 개체 (An object is an entity with a well-defined boundary and identity that encapsulates state and behavior)
- state : object의 상태 (represented by attributes and relationships)
- 시간이 지남에 따라 변할 수 있음
- State 정보가 모두 같더라도 두 Objects는 다른 Object임 (서로 유니크한 ID를 가지므로)
- behavior : object의 행위(represented by operations, methods, and state machines)
- state : object의 상태 (represented by attributes and relationships)
Object는 collaboration(message passing)이 필요하다
- 다른 Object는 encapsulation되어있어서 attribute가 open 되어있지 않기 때문 (직접 접근 불가능)
- 따라서 getter, setter 함수를 이용 (C와의 차이점)
※ sequence diagram : object 간의 collaboration을 나타냄
Class
- object을 만드는 템플릿 (a description of a set of objects)
※ object는 class의 instance - 동일한 class를 통해 나온 object는 동일한 state, behavior을 가짐
- Attribute
- a named property of a class
- 항목은 똑같지만 value값은 다를 수 있음
- Operation
- the implementation of a service
- 같은 class의 object 내의 operation은 모두 같음
예제
- + public(operation default), - private(attribute default)
- public Professor() → constructor
반응형
'💻 개발IT > OOP' 카테고리의 다른 글
3. Object-Oriented Development (OOD) (0) | 2022.02.04 |
---|---|
2. Object-Oriented Principles (0) | 2022.02.03 |