티스토리 뷰
OOP는 Object-Oriented Programming(객체 지향 프로그래밍)의 약자로 현재 프로그래머 들이 즐겨사용하는 대부분의 프로그래밍 언어에는 OOP개념이 포함되어 있습니다. VB .Net 또한 OOP 시각으로 프로그램을 만들어 가는 것이 효과적이며 VB 언어에 가장 적절한 프로그래밍 방법입니다. 초기의 프로그래밍 언어가 프로그램을 데이터와 처리 방법으로 나누는 절차적(procedural) 프로그래밍이었다면 GUI(Graphic User Interface) 기반의 사용자 환경과 수많은 이벤트에 대응해야하는 비절차적 환경에 적절한 OOP는 프로그램을 여러 객체로 나누고 이들 객체 간의 상호 작용을 기술하는 방식으로 프로그래밍합니다. 절차적 프로그래밍 언어로는 C, FORTRAN, COBOL을 들수 있고 OOP 언어는 VB.Net을 비롯하여 Java, Python등을 예로 들 수 있습니다.
VB의 클래스 정의는 Class 클래스명 .....End Class의 형식으로 기술합니다.
클래스 내의 데이터 멤버를 속성(attribute)이라 하고 일반적인 변수 선언 방식과 동일하게 사용합니다. 클래스 내의 프로시저 선언을 메소드(Method)라 하고 서브 프로시저와 함수 모두를 사용할 수 있습니다. 위의 코드 예제를 보면 Handler등의 속성과 SwitchControls 라는 메소드를 확인할 수 있습니다. 속성과 메소드 앞에는 Private, Public, Protected를 붙여서 그 접근 가능 범위를 지정할 수 있습니다. Private는 해당 클래스 및 오브젝트 바깥에서는 접근할 수 없으며 Public은 바깥에서도 접근할 수 있도록 합니다. Protected는 클래스를 상속받아 또다른 클래스를 만들 수 있는데 상속 받은 클래스에서는 접근할 수 있도록 한 것입니다. 아무것도 지정하지 않으면 기본적으로 Private으로 처리합니다.
클래스를 사용하기 위해서는 오브젝트를 선언 및 생성해 주어야 하는데 위의 코드 예제를 보면 오브젝트 선언은 변수 선언과 마찬가지로 "Dim 오브젝트이름 As 클래스이름"의 형식으로 기술합니다. 오브젝트의 실체를 생성할 때는 "New"를 사용해야 하며 위의 예제 "Dim ExcludedFilderPatterns As New List(..)" 처럼 선언과 동시에 생성할 수도 있고, 선언과 생성을 분리하여 실행문 기술 시점에 "ExcludedFilderPatterns = New List(..)" 처럼 기술할 수도 있습니다. 속성 및 메소드의 사용은 오브젝트명.속성 또는 오브젝트명.메소드의 형식으로 사용할 수 있으며 오브젝트를 생성하지 않아도 존재하는 클래스 속성과 같은 경우에는 클래스명.속성으로도 사용할 수 있습니다.
메소드 중에 특별한 메소드로 생성자(constructor)와 소멸자(destructor)가 이들은 오브젝트가 생성되는 시점 또는 소멸 시점에 자동으로 불려지는 메소드입니다. 이름은 각각 New()와 Finalize()로 정의하면 되고 생성자의 경우 오브젝트 생성 시점에 파라미터를 전달받아 적절한 작업을 수행할 수 있습니다.
위에서 언급한 방식을 통해서 클래스 내에 객체와 관련한 다양한 정보와 기능을 모아놓고 클래스 바깥으로는 상호 작용을 위한 인터페이스를 공개하는 캡슐화를(Encapsulation, 정보은닉) 통해서 한 클래스의 수정이 다른 곳에 미치는 영향을 최소화하면서도 재사용을 높여주는 장점을 높였다면 클래스 상속(Inheritance)은 OOP의 장점을 극대화 시켜주는 것으로 안정된 클래스를 손쉽게 확장 할 수 있도록 해줍니다. 대표적인 예를 들자면 앞으로 다룰 윈도우 폼을 디자이너에서 작성하면 아래의 코드 예제와 같이 사용자가 작성한 폼(From)들은 .Net 시스템의 클래스를 상속받는 방식으로 자동 생성됩니다.
Partial Class MainForm
Inherits System.Windows.Forms.Form
'프로그래밍' 카테고리의 다른 글
C#에서 구조체 사용하기 (0) | 2015.04.16 |
---|---|
상호 배제(mutual exclusion, Mutex)를 활용하여 프로그램 중복 실행 방지하기 (0) | 2015.04.15 |
VB.Net 실행중 예외처리하기 (2) | 2015.04.06 |
텍스트 편집기에서 간단하게 C 프로그램 컴파일하기 - jEdit / TCC (0) | 2015.04.02 |
가장 간편한 C언어 학습 환경 준비와 컴파일 방법 (6) | 2015.04.01 |