요약
모든 데이터를 오브젝트(object;물체)로 취급하여 프로그래밍 하는 방법으로, 처리 요구를 받은 객체가 자기 자신의 안에 있는 내용을 가지고 처리하는 방식이다.
이 개념은 1960년 중엽에 유행한 시뮬레이션 언어의 SIMURA에서 유래한 것이다. 모든 데이터를 오브젝트(object:물체)로 취급하며, 이 오브젝트에는 클래스(class:類)의 개념이 있어서 상위(上位)와 하위(下位)의 관계가 있다. 클래스의 구체적인 예가 인스턴스(instance)이다. 오브젝트 사이는 메시지의 송신(送信)으로 상호 통신한다. 가장 특징적인 것은 각 클래스에 그 메시지를 처리하기 위한 방식이 있다는 것이다. 어떤 인스턴스에 메시지가 도래하면 그 상위 클래스가 그것을 처리한다. 현재 오브젝트지향개념은 프레임 표현형식과 융합하여 인공지능을 위한 소프트웨어 기법(技法)의 하나로 되어 있다.
객체지향프로그램은 C, Pascal, BASIC 등과 같은 절차형 언어(procedure-oriented programming)가 크고 복잡한 프로그램을 구축하기 어렵다는 문제점을 해결하기 위해 탄생된 것이다. 절차형 언어에서는 코드 전체를 여러 개의 기능부분 즉, 인쇄하는 기능부분과 유저로부터의 입력을 받는 기능부분 등으로 분할하는데, 이와 같이 각 기능부분을 구성하는 코드를 모쥴이라고 한다. 절차형 언어에서는 프로그램을 여러 기능으로 나누고 이들 모쥴을 편성하여 프로그램을 작성할 경우, 각 모쥴이 처리하는 데이터에 대해서는 전혀 고려하지 않는다. 다시 말하면 데이터 취급이 완전하지 않고 현실 세계의 문제를 프로그램으로서 표현하는 것이 곤란하다.
이러한 절차형 프로그래밍이 가지는 문제를 해결하기 위해 탄생된 객체지향프로그래밍은 객체라는 작은 단위로서 모든 처리를 기술하는 프로그래밍 방법으로서, 모든 처리는 객체에 대한 요구의 형태로 표현되며, 요구를 받은 객체는 자기 자신 내에 기술되어 있는 처리를 실행한다. 이 방법으로 프로그램을 작성할 경우 프로그램이 단순화되고, 생산성과 신뢰성이 높은 시스템을 구축할 수 있다.
'c# 언어' 카테고리의 다른 글
Graphics graphics = CreateGraphics(); (0) | 2021.07.05 |
---|---|
C# 콘솔프로그램에서 콘솔창 숨기기 (0) | 2021.07.02 |
C# 에서의 [STAThread] 는 왜 붙이는가? (Why STAThread is attached above C# ?) (0) | 2021.07.01 |
WndProc(ref Message m)를 이용시에, WM_MESSAGE정의 (0) | 2021.07.01 |
m.WParam.ToInt32()를 이용시에 VK_KEY_NUMBER정의 (0) | 2021.07.01 |