|
|
1번째 줄: |
1번째 줄: |
− | '''객체 지향 프로그래밍'''(Object-Oriented Programming,[[OOP]])은 컴퓨터 프로그램을 [[객체]]라는 기본 단위로 나누고 각각의 객체가 메시지를 주고받으며 데이터를 처리하는 [[비절차적 프로그래밍 언어]]이다.
| |
| | | |
− | ==역사==
| |
− | 초기 프로그래밍 방식인 [[절차적 프로그래밍 방식]]은 입력을 받아 명시된 순서대로 처리한 다음 그 결과를 내는 언어로, 조금만 복잡해져도 다른 사람이 보고 이해하기 어려울 정도로 어려워져 유지보수가 어려운 단점이 있다.
| |
− | 절차적 프로그래밍 방식을 보완하기 위해 1960년 [[조한 달]]과 [[크리스틴]]이 [[시뮬라67]]을 발표했다. 이어서 [[팰러액토 연구]]소의 [[스몰토크]],[[ 미 국방성]]의 [[에이다]]등이 만들어졌다. 이후 [[AT&T]]의 [[벨 연구소]]의 [[C++]], 1990년대 중반 이후로 각광받고 있는 [[썬 마이크로시스템즈]]의 [[자바]]([[Java]])가 만들어졌다.
| |
− |
| |
− | ==기본 구성 요소==
| |
− | *[[객체]](Object) - 객체는 데이터와 그에 관련되는 동작(절차,방법,기능)을 모두 포함한 인스턴스이다.
| |
− | *[[클래스]](Class) - 같은 종류의 집단에 속하는 속성, 오퍼레이션, 관계 등을 갖고 있는 객체들의 집합이다.
| |
− | *[[메소드]](Method) - 클래스 내부에 정의된 객체가 수행해야할 오퍼레이션으로, 기존의 프로그래밍 언어에서의 함수와 대응된다.
| |
− |
| |
− | ==특징==
| |
− | ===캡슐화===
| |
− | 프로그램의 실제 구현내용을 외부로 드러나지 않도록 특정 모듈([[클래스]]) 내부로 은닉하는 것이다.
| |
− | ===상속===
| |
− | 자식 클래스가 부모 클래스의 특성과 기능을 그대로 물려받음으로써, [[캡슐화]] 및 재사용이 용이하도록 해준다.
| |
− | ===다형성===
| |
− | 하나의 변수명이 상황에 따라 다른 의미로 해석될 수 있는 것으로 일반적으로 [[오버라이딩]], [[오버로딩]]을 의미한다.
| |
− |
| |
− | ==객체지향언어==
| |
− | *[[SmallTalk]]([[스몰토크]])
| |
− | *[[Ruby]]([[루비]])
| |
− | *[[Python]]([[파이썬]])
| |
− | *[[Java]]([[자바]])
| |
− | *[[C#]]
| |
− | *[[C++]]
| |
− | *[[Objective-C]
| |
− | *[[Objective-Pascal]]
| |
− | *[[비주얼 베이직 닷넷]]
| |
− | *[[Delphi]]([[델파이]])
| |
− | *[[ASP]]
| |