★ 객체 지향 언어(客體指向言語 ) 사전적 의미
IT관련 객체 지향 프로그래밍에서 사용하는 언어로서, 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, 즉 "객체"들의 모임으로 파악하고자 하는 것이다
객체를 만들고 조작하며 객체끼리 메시지를 주고받고, 데이터처리와같은 관계를 맺음으로 다수의 객체가 함께 수행될 수 있게 한다.
객체(客體) 란 구체적인 사물, 사람 혹은 추상적인 개념이 될 수도 있는 무언가이다
컴퓨터로 예를 들자면, 컴퓨터에 쓰이는 모든 부품(모니터, 키보드, 스피커 등)과 컴퓨터가 제공하는 모든 기능(화면이 켜짐, 소리가 남 등)이 전부 객체인것이다
(사람이 말로 표현 가능한 모든 것을 객체라 할 수 있다)
객체지향언어란 프로그램을 다수의 객체로 만들고, 이들끼리 서로 상호작용하도록 만드는 프로그래밍 언어이다
컴퓨터의 모든 부품을 적절히 연결하고 조립해서 컴퓨터가 제대로 작동하도록 만드는 것이라고 볼 수 있다
객체 지향 프로그래밍은 자료 추상화를 기초로 하여 상속, 다형 개념, 동적 바인딩이 시스템의 복잡성을 제어하기 위해 서로 맞물려 기능하는 것이다.
특징으로는 크게 캡슐화, 상속, 다형성, 추상화 4가지로 나눌 수 있다.
다형성
상속과 연관된 개념으로, 하나의 객체가 다른 여러 객체로 재구성되는 것이다.
부모가 쌍둥이 자식을 낳으면 부모의 유전자가 두 명의 자식으로 재구성되는 것과 같은 이치이다.
하지만, 그렇다고 해서 두 쌍둥이(재구성된 객체들)의 유전자가 부모(원 개체)의 유전자와 똑같다고 볼 수는 없다. 자바의 오버로드, 혹은 오버라이드 다형성이 이 다형성을 드러내는 대표적인 예이다
추상화
실존하는 객체의 여러 특성 중, 프로그램을 만드는데 필요한(공통적인) 부분만 파악해서 추출하고 필요하지 않은 것은 제거하는 것이다.
객체지향언어가 절차지향언어의 단점을 보완하고자 등장했다고 해서 무조건적으로 우수하다고 할 수는 없다. 구조와 특징이 명확히 다를 뿐, 어떻게 활용하느냐에 따라 다른것이다.
객체지향언어로는 우리가 익히 들어 알고있는 자바, c++, 파이썬 이외에도 최초의 객체지향언어인 시뮬라67, 비주얼 베이직 닷넷, 액션스크립트, 스위프트 등 종류는 다양하다