sungwony

OOP(객체지향 프로그래밍) 본문

development/디자인패턴

OOP(객체지향 프로그래밍)

일상이상삼상 2017. 6. 27. 23:46

클래스와 오브젝트


클래스(class) = 추상

오브젝트(object)  = 실체


클래스 = 개념(concept) = 타입(type)

객체 = 실체(instance) = 변수(variable)


캡슐화(encapsulation)

상속성(inheritance)

다형성(polymorphism)


캡슐화

데이터 + 데이터에 대한 조작을 묶는 것


상속성

하나의 클래스가 가지고 있는 특징들을

다른 클래스가 물려받는 것

: IS - A 관계

: 다른 클래스를 상속받은 클래스는 기존 클래스와

구분되는 특징만 기술하여 추가한다.


다형성

상속성의 계층을 따라서 각각의 클래스에

한가지 이름을 줄 수 있는 것


다형성(polymorphsm;폴리모피즘) 

"여러 형태"를 의미하는 그리스어

상속성의 계층을 따라서 각 클래스에 동일한 이름의

메소드를 사용할 수 있는 것


메시지 전달

객체지향관점에서 프로그램은 오브젝트에 message를

보내는 것으로 실행한다.


Dog d;

d = new Poodle();

d.bark();


d.bark() : "객체 d에 bark라는 메시지를 보낸다"고 읽는다

실제로는 객체 d의 bark()를 호출한다.

즉 실제 구체적 동작과 관계없이 "객체"와 객체에 대한

상호작용 관점을 제공