"객체 지향 프로그래밍 언어"의 두 판 사이의 차이

위키원
이동: 둘러보기, 검색
("객체 지향 프로그래밍" 문서로 병합)
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]]
 

2018년 7월 18일 (수) 10:07 판