객체지향이란
문제가 존재하고 문제안에 객체들이 존재. 객체들관의 관계가 있다.
이러한 관점이 객체지향이다.
절차지향은 내적관계를 통해 방정식을 파악한다. ->방정식을 푼다.
객체를 찾아내어 자원을 통해 문제를 푼다????
객체란
객체안에는 attribute와 behavior 가 있다.
객체는 객체끼리 영향을 주고 받는다.
이것을 relation 이라고 한다.
HAS-A ,IS-A
이러한 관계를 알고 정의해서 인터페이스, 디자인패턴을 한다.
class 사람
class 학생 : public 사람
다음과 같은 형태가 IS-A 관계이다.
"모든 학생은 사람이다."
라는 말을 하였을 때 어색하지 않은 관계.
하지만
"모든 사람은 학생이다"
라고 했을 때에는 올바르지 않다.
이렇게 하위 클래스가 상위 클래스를 "포함" 하고 있는 관계를 IS-A 관계라 한다.
그렇다면 HAS-A 관계는 무엇인가.
"사탕을 소유한 어린 아이"
"무기를 소지한 강도"
"총을 가지고 있는 경찰"
정도가 HAS-A 관계라고 볼 수 있다.
사탕은 강도도, 어린 아이도, 경찰도 모두 소요 할 수 있고.
무기 또한 어린 아이도(?) 강도도, 경찰도 소유 할수 있고.
물론 총도, 어린...아...이도.. 강도도 경찰도 가질 수 있다.(물론 약간의 거부감이 들지도 모르지만 불가능 한게 아니다.)
'AdvancedJava' 카테고리의 다른 글
용어정리 (0) | 2016.07.05 |
---|---|
캡슐화,객체관계,상속,다형성,object vs class (0) | 2016.07.05 |
정보은닉 (0) | 2016.07.05 |
쉽게말해 추상화 (0) | 2016.07.05 |
프로그래밍이란..... (0) | 2016.07.05 |