캡슐화(Encapsulation), 추상화(Abstraction), 다형성(Polymorphism), 상속성(Inheritance)이 그것입니다.
첫째, 캡슐화는 말 그대로 클래스 또는 객체와 이것이 가질 수 있는 메서드를 하나의 단위로 묶어서 생각한다고 보면 됩니다. 즉, 사람(클래스 또는 객체)과 이 사람의 특징(걷고, 말하고, 보고, 듣고, 뛰고, ... 등등)을 하나로 묶어서 덩어리로 보는 것입니다. 외부에 공개된 것은 인터페이스가 되는 메서드가 되고, 외부(또는 내부)로부터 ‘걸어라’라는 지시에 의해 메서드가 작동하면 사람에게 부여된 걷는 방법에 의해 두발로 걷게 되는 것입니다. 캡슐화는 내부의 클래스의 속성은 보이지 않지만 공개된 메서드에 의해서 객체의 조정이 가능한 특징을 정의한 것입니다.
둘째, 추상화는 다양한 객체의 유사한 속성들을 묶어 일반화 한다고 이해하면 될 듯 합니다. 즉, 사람도 걷고, 개도 걷고, 새도 걷고 하는 걷는다는 속성을 추상화 하여 하나의 범주로 묶어서 보는 것이라고 이해하면 됩니다.
셋째, 다형성은 추상화와는 약간 상반되는 성격을 띤다고 볼 수도 있는 것이지만 유사한 관계속에서 이해하는 것이 좋을 듯 합니다. 즉, ‘걷는다’는 메서드가 사람에게 부여되면 두발로 걷고 한발이 공중에 떠 있을 때 다른 한발은 땅에 붙어 있어야 한다는 룰에 의해 작동되고 전/후/좌/우 방향에 상관없이 어느 방향으로 이동 가능한 특징이 있다면, 개의 경우는 동일한 ‘걷는다’는 메서드에 의해 4발로 움직이며 전진과 후진, 회전만이 가능하며 두발이 공중에 있을 때 나머지 두발은 땅에 대고 있어야 한다는 특징을 갖는 것과 같습니다. 즉, 같은 메서드에 대해 달리 움직일 수 있지만 추상화 하면 다 걷는다는 범주에 들어간다는 것입니다.
넷째, 상속성입니다. 즉, 클래스에 의해 현실적으로 발현한 것이 객체라고 한다면, 이 클래스의 특징을 고스란히 간직한 체 약간 다른 속성과 메서드를 더 갖는 클래스를 만들어 낼 수 있다는 특징이 상속성입니다. 즉, 사람이라는 클래스를 이용해서 사람의 특징을 고스란히 이어받았지만 피부색이 다른 백인종, 흑인종, 황인종 등을 만들어 내는 것을 상속이라고 보는 것입니다.
'JAVA' 카테고리의 다른 글
JAVA GARBAGE COLLECTION (0) | 2014.11.28 |
---|---|
interface 추상클래스 차이 (0) | 2014.11.27 |
OOD(객체지향설계) (0) | 2014.11.12 |
cannot execute binary file (0) | 2013.08.26 |
adt 다운로드 (0) | 2013.08.26 |