티스토리 뷰

오랜만에 강좌 하나 써봅니다. 뭐 특별한건 아니지만 알아놓으면 유용하게 쓸쑤 있는 팁같은걸..


Class 문


클래스를 구성하는 변수, 속성, 메서드를 정의하고 클래스 이름을 선언합니다.

Class name
statements
End Class

인수
name

필수적인 요소. Class 이름입니다. 표준 변수 명명 규칙을 따릅니다.

statements

필수적인 요소. Class의 변수입니다. 속성 및 메서드를 정의하는 하나 이상의 문입니다.

참고
Class 블록 내의 구성원은 적당한 선언문을 이용하여 Private 또는 Public으로 선언합니다. Private으로 선언되면 Class 블록 내에서만 참조할 수 있습니다. Public으로 선언되면 Class 내에서 뿐만 아니라 외부에 있는 코드에서도 참조할 수 있습니다. Private이나 Public과 같이 명시적으로 선언되지 않으면 기본 선언은 Public입니다. 클래스 블록 내에서 Public으로 선언된 프로시저(Sub 또는 Function)는 클래스의 메서드가 됩니다. Public 변수는 Property Get, Property Let 및 Property Set을 이용하여 명시적으로 선언된 속성과 마찬가지로 클래스의 속성으로 사용됩니다. 클래스의 기본 속성 및 메서드는 Default 키워드를 사용하여 선언 시에 지정됩니다. 키워드의 사용법에 대한 자세한 내용은 개별 선언문 항목을 참조하십시오.

출처 : Visual Basic Script 온라인 설명서




Class 문 사용 예시


<%
Class Test
        ' 클래스에서 사용할 변수 선언
        Public Startx
        Public Starty
        Private num
        Private i

        ' 클래스 로딩시 실행될 서브
        Private Sub Class_Initialize()
                 Startx = 0
                 Starty = 0
        End Sub

        ' Calc 함수(Startx 부터 Starty 까지 수를 더한값 리턴)
        Public Function Calc()
                 num = 0
                 for i = Startx to Starty
                          num = num + i
                 next
                 Calc = num
        End Function
End Class

Dim TestClass

'클래스 사용
Set TestClass = new Test

'클래스 변수 값 지정
TestClass.Startx = 1
TestClass.Starty = 10

Response.Write TestClass.Calc
%>

변수 선언에 쓰인 Public과 Private 의 차이점은 Public 의 경우 클래스 안, 밖 에서 모두 사용할 수 있는 변수 및 함수등을 선언하고 Private 는 클래스 안에서만 사용할 수 있는 변수 및 함수를 선언하는 것입니다.

클래스를 좀더 응용하면 다음과 같이 사용할 수도 있습니다.


<%
DIM DB_PROVIDER, MemberDB

Class DBCLASS
Private DBConn
Public  RS

  Private Sub Class_Initialize()  <- 생성자
         set DBconn = server.CreateObject("ADODB.Connection")
             DBconn.Open(DB_PROVIDER)
             set RS = server.CreateObject("ADODB.Recordset")
             RS.cursortype = 1
             RS.cursorlocation = 3
             RS.locktype = 3
     End Sub

  Private Sub Class_Terminate()  <- 소멸자
       if RS.state = 1 then RS.Close
         set RS = nothing
             DBConn.Close
         set DBconn = nothing
     End Sub

  Public Function query(InputSql) <- 이건 구냥 만든거^^
         RS.Open InputSql, DBConn
     End Function
End Class
%>
<%

    DB_PROVIDER = "Provider=SQLOLEDB;Persist Security Info=False;User ID=test;Password=test;Initial Catalog=TestDB;Data Source=???.???.???.???"

   set memberDB = new DBCLASS

%>
<%

memberDB.query("select * from TestTable")

Dim intCount

intCount = 0

if not memberDB.RS.EOF then
   memberDB.RS(0) = "KeHaHa"
   memberDB.RS.Update
   if IsEmpty(memberDB.RS(0)) then
       memberDB.query("insert into Test2Table(test) values(" & intCount & ")")
   elseif IsNull(memberDB.RS(0)) then
       memberDB.query("delete from Test2Table where intseq = " & intCount)
   end if

   memberDB.RS.MoveNext
   intCount = intCount + 1
end if
set memberDB = nothing
%>

데브피아 ASP 포럼 임석재(YSJ1108)님의 포스트


댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함