본문 바로가기

AdvancedJava

객체와 객체지향이란...

객체지향이란


문제가 존재하고 문제안에 객체들이 존재. 객체들관의 관계가 있다. 


이러한 관점이 객체지향이다.


절차지향은 내적관계를 통해 방정식을 파악한다. ->방정식을 푼다. 


객체를 찾아내어 자원을 통해 문제를 푼다????




객체란

객체안에는 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