JAVA/변수 및 객체, 기타

객체지향 3대 특성

Lune Bleue 2019. 12. 15. 17:51

객체지향 3대 특성이라고 하면

 

1) 캡슐화 :

연관된 데이터와 함수를 논리적으로 묶어놓은 것이며, 데이터를 보호하기 위해 다른 객체의 접근을 제한하는 접근 제한 수식자의 기능을 제공한다. 

접근제한자에 의해 데이터에 접근하려면 특정 명령어를 조작 해야하며, 권한이 없으면 접근할 때 오류가 발생하여, 데이터의 변형및 손실을 최소화 한다. (정보 은닉)

또한 객체 조작 방법이나 데이터가 변경되어도 사용 방법은 변하지 않아 다른 객체에 영향을 끼치지 않는다.

이를 통해 독립성이  유지되며 인터페이스가 간결해저 객체간 응집도가 낮아진다.

 

2) 상속 :

이미 정의된 상위 클래스(부모클래스)의 모든 속성과 연산을 하위클래스가 물려받는 것으로

ㄱ)하위클래스는 상위클래스의 모든 속성과 연산을 클래스내에서 다시 정의 하지 않아도 사용 할 수있다.

ㄴ)하위클래스는 상위클래스에 없는 속성과 연산을 추가 하여 사용 할 수 있다.

 = 소프트웨어의 재사용을 증대시킨다.

 

JAVA는 단일 상속만 가능하며, 언어에 따라 다중상속을 지원하기도 한다.

 

 

3) 다형성

어떤 하나의 메세지를 각 객체(클래스가)가지고 있는 고유한 방법(특성)으로 응답할 수 있는 능력을 말한다.

ㄱ)각 클래스는 동일한 메소드명을 사용하며 같은 의미의 응답을 한다.

ㄴ)응용 프로그램 상에서 하나의 함수나 연산자가 두 개 이상의 서로 다른 클래스의 인스턴스들을 같은 클래스에 속한 인스턴스 처럼 수행 할 수 있도록 하는 것이다.

오버라이딩/ 오버로딩