1.캡슐화.
- 데이터와 그 데이터에 작용하는 메서드를 하나로 묶음
- 정보 숨기기: 개체안에 있는 데이터를 외부로부터보호
- 외부: 다른 클래스에 속한 객체들
2.상속
- 이미 존재하는 개체를 기반으로 확장된 개체를 만드는 방법
- 기존의 개체에 속한 데이터와 동작을 모두 물려받음
- 여기에 다른 데이터나 동작을 추가할 수 있음.
- 실용적인 용도:
- 코드 중복을 막음
3.다형성
- OOP의 핵심
- 같은 지시를 내렸는데 다른 종류의 개체가 동작을 달리하는것.
- 같은지시: 동일한 함수 시그니처 호출
- 달리 동작: 개체의 동작에따라 실행되는 함수 구현 코드가 다름.
- 어떤 함수 구현이 실행될지는 실행중에 결정됨
- 다형성의 혜택을 받으려면 상속 관계가 필요.
- 실용적 용도:
- 부모의 형을 저장하는 배열에 모든 자식 객체를 저장.
- Animal[] 배열안에 cat,dog,bird 객체들을 넣어서 사용가능.
- 부모의 형을 저장하는 배열에 모든 자식 객체를 저장.
4.추상화
- 데이터 추상화
- 객체 사용시 그 안에 정확히 어떤 데이터가 있는지 알 필요 없음.
- 객체안에 있는 데이터에 직접 접근 불가.
- 대신 객체의 함수를 통해 접근
5.연관
- 어떤 객체가 제공하는 기능을 다른 객체가 이용하는 관계
- 종종 상속과 비교해 설명
- 세부적으로 집합과 컴포지션으로 나누기도함
'공부 > OOP' 카테고리의 다른 글
Singleton (0) | 2023.12.13 |
---|---|
Static (0) | 2023.12.13 |
개체 모델링 가이드라인. (0) | 2023.12.13 |
getter,setter (0) | 2023.12.13 |
객체지향 프로그래밍의 필요성 (0) | 2023.12.13 |