클래스란 업무 분석을 통해서 사용자가 만들어나가는 추상적인 자료형을 설계하는 설계표이다.
클래스는 객체 지향 프로그램에서 객체 내부의 데이터 구조(필드, 멤버 변수)와 그 데이터에 작용하는 함수(메서드, 멤버함수)를 기술한 사용자 정의 데이터 타입(User Defined Type)을 말한다.
그럼, 객체란? 객체는 클래스를 실체화한 것으로 '인스턴스'라고도 부른다. 즉, 객체는 클래스를 기바느올 생성된다.
클래스 내부에는 필드, 상수, 메서드, 속성, 이벤트가 멤버로 선언되며 Class, Structure, Delegate, Enumerable, Interface의 형식도 정의할 수 있다.
한정자를 사용하여 외부에서 이들 멤버에 접근할 때 필요한 권한 설정을 할 수 있으며, 선언시 한정자를 성정하지 않으면 필드의 경우 Private 한정자가 기본이며 그 외는 모두 Public 한정자가 기본값으로 설정된다.
1. 필드와 메서드 정의
객체를 생성하는 구문은 다음과 같다.
이때, New 키워드를 사용하여 객체가 생성될 때 자동으로 디폴트 생성자가 호출되어 필드들을 초기화 시켜준다.
2. 생성자와 생성자 오버로딩
생성자는 색체가 생성될 때 자동으로 호출되며, 주로 객체가 가지는 필드에 대한 초기화 작업을 수행하기 위해 사용된다. 생성자는 특별한 메서드로 리턴 값이 없으며 이름은 반드시 New 이어야 한다.
생성자 역시 메서드 이믈 메서드처럼 오버로딩이 가능하다.
3. Private 필드 접근 방법
한정자를 Private로 정의한 필드나 메서드는 클래스 내부에서만 접근할 수 있다. 즉 캡슐화를 통해서 객체의 내부 데이터를 외부에서 직접적으로 접근하지 못하게 한다는 것이다.
그렇다면 Private으로 정의한 필드를 외부에서 접근하려고 한다면 어떻게 해야 할까?
(1) 접근자와 변환자 메서드 사용
이 방법은 하나의 필드에 대해서 두개의 메서드를 가지는 방식이다.
(2) 속성 사용
- 속성은 약간의 코드를 사용해 안전하게 객체의 필드에 대한 접근을 가능하게 해 준다. 접근자와 변환자 메서드를 사용하는 방법과는 달리 하나의 속성을 사용하여 보다 편리하게 필드에 접근하도록 해준다.
- 속성은 get블로과 set블록으로 구성되어 있다. 필드의 값을 얻어내기 위해서는 get속성 프로시저와 필드에 값을 할당하기 위해서는 set속성 프로시저를 사용할 수 있다.
만약 읽기 전용 속성을 만들기 위해서는 get 블록만을 구현하고 속성에 'ReadOnly'한정자를 지정해야 한다. 쓰기전용 속성을 만들기 위해서는 set 블록만을 구현하고 속성에 'WriteOnly'한정자를 지정해야 한다.
4. 상속
상속은 한 클래스가 다른 클래스에게 자신의 멤버를 물려주는 것을 말한다.
클래스는 객체 지향 프로그램에서 객체 내부의 데이터 구조(필드, 멤버 변수)와 그 데이터에 작용하는 함수(메서드, 멤버함수)를 기술한 사용자 정의 데이터 타입(User Defined Type)을 말한다.
그럼, 객체란? 객체는 클래스를 실체화한 것으로 '인스턴스'라고도 부른다. 즉, 객체는 클래스를 기바느올 생성된다.
클래스 내부에는 필드, 상수, 메서드, 속성, 이벤트가 멤버로 선언되며 Class, Structure, Delegate, Enumerable, Interface의 형식도 정의할 수 있다.
한정자를 사용하여 외부에서 이들 멤버에 접근할 때 필요한 권한 설정을 할 수 있으며, 선언시 한정자를 성정하지 않으면 필드의 경우 Private 한정자가 기본이며 그 외는 모두 Public 한정자가 기본값으로 설정된다.
1. 필드와 메서드 정의
객체를 생성하는 구문은 다음과 같다.
<문법> Dim 객체명 As New 클래스명()
Dim 객체명 As 클래스명 = New 클래스명()
Dim 객체명 As 클래스명 = New 클래스명()
이때, New 키워드를 사용하여 객체가 생성될 때 자동으로 디폴트 생성자가 호출되어 필드들을 초기화 시켜준다.
2. 생성자와 생성자 오버로딩
생성자는 색체가 생성될 때 자동으로 호출되며, 주로 객체가 가지는 필드에 대한 초기화 작업을 수행하기 위해 사용된다. 생성자는 특별한 메서드로 리턴 값이 없으며 이름은 반드시 New 이어야 한다.
생성자 역시 메서드 이믈 메서드처럼 오버로딩이 가능하다.
[Tip] me 키워드에 대한 이해
클래스를 저의하다 보면 me라는 키워드를 자주 사용하게 되는데 객체 자신에 대한 참조 값을 가지며 또한, 객체 생성자에서 또 다른 생성자를 호출하기 위해 사용된다.
첫번쨰 커스텀 생성자에서는 필드의 이름과 매개 변수로 들어온 변수의 이름이 서로 충돌되므로 me라는 키워드를 사용하여 서로 구별하고 있다.
두번째 커스텀 생성자에서는 하나의 매개 변수만을 받아들여 앞의 2개의 매개변수를 가진 커스텀 생성자를 다시 호출하게 된다.
클래스를 저의하다 보면 me라는 키워드를 자주 사용하게 되는데 객체 자신에 대한 참조 값을 가지며 또한, 객체 생성자에서 또 다른 생성자를 호출하기 위해 사용된다.
첫번쨰 커스텀 생성자에서는 필드의 이름과 매개 변수로 들어온 변수의 이름이 서로 충돌되므로 me라는 키워드를 사용하여 서로 구별하고 있다.
두번째 커스텀 생성자에서는 하나의 매개 변수만을 받아들여 앞의 2개의 매개변수를 가진 커스텀 생성자를 다시 호출하게 된다.
3. Private 필드 접근 방법
한정자를 Private로 정의한 필드나 메서드는 클래스 내부에서만 접근할 수 있다. 즉 캡슐화를 통해서 객체의 내부 데이터를 외부에서 직접적으로 접근하지 못하게 한다는 것이다.
그렇다면 Private으로 정의한 필드를 외부에서 접근하려고 한다면 어떻게 해야 할까?
(1) 접근자와 변환자 메서드 사용
이 방법은 하나의 필드에 대해서 두개의 메서드를 가지는 방식이다.
(2) 속성 사용
- 속성은 약간의 코드를 사용해 안전하게 객체의 필드에 대한 접근을 가능하게 해 준다. 접근자와 변환자 메서드를 사용하는 방법과는 달리 하나의 속성을 사용하여 보다 편리하게 필드에 접근하도록 해준다.
- 속성은 get블로과 set블록으로 구성되어 있다. 필드의 값을 얻어내기 위해서는 get속성 프로시저와 필드에 값을 할당하기 위해서는 set속성 프로시저를 사용할 수 있다.
만약 읽기 전용 속성을 만들기 위해서는 get 블록만을 구현하고 속성에 'ReadOnly'한정자를 지정해야 한다. 쓰기전용 속성을 만들기 위해서는 set 블록만을 구현하고 속성에 'WriteOnly'한정자를 지정해야 한다.
4. 상속
상속은 한 클래스가 다른 클래스에게 자신의 멤버를 물려주는 것을 말한다.
'Windows Developer > VB' 카테고리의 다른 글
[VB.net] Split() 특정 문자열 제거 (1) | 2011.03.15 |
---|---|
[VB] API로 만든 DLL 사용하기 (0) | 2010.12.07 |
[VB.NET] 추상 클래스와 인터 페이스 (0) | 2010.08.13 |
[VB.NET] 제어문 (0) | 2010.08.12 |
[VB.NET] 열거형과 구조체 (0) | 2010.08.12 |