배니스트의 개발추적기

[OOP] 객체 지향 언어의 기본 본문

CS Basic/Programming Language

[OOP] 객체 지향 언어의 기본

배니스트 2020. 9. 1. 09:32

🎯 글머리

자주 사용하지만 막상 물어보면 잘 모를 수 있는 객체 지향 언어와 그 특성에 대해 간단하게 정리해둔다.

 

 

🎯 글몸통

- 객체 지향 언어란 해결할 과제를 실제 세상의 객체와 객체 간의 상호 관계로 모델링하여 '인간의 사고'에 가깝게 표현하고자 하는 언어이다. -> 실세계에 대한 쉬운 모델링을 하기 위함이다.

 

  * 실세계의 객체: 고유한 특성(state)행동(behavior)을 가지는 개체라 할 수 있다.

    다른 객체들에게 행동을 요청하거나 정보를 주고받는 등의 상호작용을 한다.

  * 프로그래밍에서의 객체: 동일한 성질의 데이터(필드)함수(메소드)를 한곳에 모아두고

    필요한 곳에서 언제든지 이용할 수 있게 만든 덩어리이다.

 

- 객체 지향 언어의 특성

구분 특성 목적
캡슐화(Encapsulation) 객체를 캡슐(클래스: 필드 + 메소드)로 싸서 그 내부를 보호하고 볼 수 없게 함 보안, 보호, 외부 접근 제한
-> 정보 은닉화(Information Hiding)
상속(Inheritance) 상위 개체(부모클래스, 슈퍼클래스)의 속성이 하위 개체(자식클래스, 서브클래스)에 물려져서, 하위 개체가 상위 개체의 속성을 모두 갖고 있음. 코드의 중복 작성 방지
-> 코드의 재사용
     + 클래스간 계층적 분류 및 관리
다형성(Polymorphism) 같은 이름의 메소드 호출에 대해 객체에 따라 다른 동작을 하도록 함
: Overloading, Overriding, Interface에 대한 다양한 구현체
목적에 따른 다양한 변형
-> 개방-폐쇄의 원칙(Open-Closed Principle)*

* OCP(Open-Closed Principle): 확장에는 열려있고, 수정/변경에는 닫혀있다. 즉, 기존 코드를 변경하지 않고 기능을 추가하거나 확장 가능한 성질을 말한다.

'CS Basic > Programming Language' 카테고리의 다른 글

[Java] 꼭 Java를 써야할까?  (0) 2020.08.27