잡다한 지식/CS 베이스

[프로그래밍언어론] 객체지향 프로그래밍 언어의 특징

GGOBOOGI 2021. 3. 26. 11:53
반응형

객체지향 프로그래밍 언어의 특징은 JAVA를 처음 배우다 보면 이론 부분에 항상 배우는 것이다.

 

그때 당시에는 오 당연 당연 그렇지 하고 지나가겠지만, 생각보다 특징이 뭐야! 응이 뭐야!라고 물으면 뭐가 둥둥 떠다니긴 하는데 말로 안 나온다.

 

이번 기회에 정리하고, 이해를 기반으로 암기를 하도록 하자.


1. 캡슐화 (Encapsulation)

 

객체지향 프로그래밍 언어에서는 객체를 통해 데이터(속성)와 데이터를 처리하는 함수를 하나로 묶는다.

이러한 캡슐화는 정보 은닉을 통해 외부에서 캡슐 내부의 내용이 보이지 않아 오류의 파급 효과가 적다.

또한, 캡슐화된 객체는 재사용이 용이하다.

 

2. 정보 은닉 (Information Hiding)

 

캡슐화에서 가장 중요한 개념으로 쓰이는 것이다. 

캡슐화의 정보 은닉을 통해 다른 객체에게 자신의 정보를 숨기고 자신의 연산만을 통하여 접근을 허용한다.

 

3. 추상화 (Abstraction)

 

불필요한 부분을 생략하고 객체의 속성 중 가장 중요한 것에만 중점을 두고 개략화 하는 것을 의미한다.

데이터의 공통된 성질을 추출하여 슈퍼클래스를 선정하는 개념이다.

 

4. 상속성 (Inheritance)

 

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

 

5. 다형성 (Polymorphism)

 

객체끼리의 통신은 메시지를 이용하여 통신하게 된다.

메시지에 의해 객체가 연산을 수행하게 될 때, 하나의 메시지에 대해 각 클래스가 가진 고유한 방법으로 응답할 수 있는 능력을 다형성이라고 한다.

다형성에는 오버로딩(overloading)과 오버라이딩(overriding)이 있다.

 

반응형