2003. 10. 22. 14:35

클래스 설명 상세히

*** Class1에 ***

'클래스에 보면 MyValue라는 변수가 선언이 된 걸 볼 수 있을 겁니다.
'이 변수는 오로직 클래스에서만 사용을 하며 외부에서는 절대로 사용할 수 없습니다.
'이유는 저번에 설명을 했듯 변수가 선언이 될때 Private로 선언을 해서 입니다.
Private MyValue As Integer

'이 프로시져는 외부에서 값을 전달 받을 때 사용을 합니다.
'Form1에서 'C1.MyData = 100'라고 100이라는 값을 클래스에 전달을
'해주는 것입니다.
Public Property Let MyData(Value As Integer)

    '외부에서 전달 받은 값(100)을 클래스 안에서만 사용이 가능한 변수(MyValue)에 집어 넣습니다.
    MyValue = Value


End Property

'외부로 값을 전달해주는 프로시져로써
'클래스 안에서만 사용가능한 MyValue에 100을 더해서 외부로 전달을 해줍니다.
Public Property Get MyData() As Integer
    MyData = MyValue + 100
End Property

*** Form1에 ***
Private Sub Command1_Click()

    Dim Result As Integer

    '참조변수를 선언을 합니다.
    Dim C1 As Class1

    '인스턴스를 생성(New)을 합니다.
    Set C1 = New Class1

    '숫자 100을 인스턴스로 생성된 C1의 MyData에 전달을 한다.
    '이때 클래스의 Property Let MyData를 실행을 해서
    '클래스에 선언된 MyValue라는 변수에 전달을 한다
    C1.MyData = 100

    '클래스의 MyData라는 프로시져를 실행 후 전달 받은 값을
    'Result라는 변수에 전달을 한다.
    Result = C1.MyData

    MsgBoxt Result

    'Nothing으로 New로 생성된 C1을 메모리에 소멸시킴
    'Nothing을 하지않으면 메모리등의 자원을 그대로 잠식하기 때문에
    'New가 있으면 Nothing이 꼭 있어 합니다.
    Set C1 = Nothing

End Sub



다음 예제는 1부터 100까지 숫자를 클래스에서 구해서 그 결과값을 전달해주는 예제 입니다.
위 예제와 틀린 점은 외부에서 특정한 값을 전달 받는 것이 없습니다.
그러므로 Public Property Let라는 프로시져는 필요하지 않습니다.

무조건 외부에 값을 절달해주는 Public Property Get프로시져만 필요한 겁니다.

이 예제도 F5 대신 F8를 눌러서 한단계씩 실행을 시켜가면서 어떤식으로 실행이 되는지 확인을 해보시길...


다음 강좌에서는 클래스의 Method(메서드)에 관해서 설명을 하겠습니다.