클래스의 이름을 선언하고 클래스가 구성하는 변수, 속성, 이벤트 및 프로시저의 정의를 도입합니다.
문법
[ <attributelist> ] [ accessmodifier ] [ Shadows ] [ MustInherit | NotInheritable ] [ Partial ] _
Class name [ ( Of typelist ) ]
[ Inherits classname ]
[ Implements interfacenames ]
[ statements ]
End Class
부분
| 기간 | 정의 |
|---|---|
attributelist |
선택 사항입니다. 특성 목록을 참조하세요. |
accessmodifier |
선택 사항입니다. 다음 중 하나일 수 있습니다. - 공공의 - 보호 - 친구 - 민간의 - 보호된 친구 - 프라이빗 보호됨 Access levels in Visual Basic을 참조하세요. |
Shadows |
선택 사항입니다. Shadows를 참조하세요. |
MustInherit |
선택 사항입니다. MustInherit을 참조하세요. |
NotInheritable |
선택 사항입니다. NotInheritable을 참조하세요. |
Partial |
선택 사항입니다. 클래스의 부분 정의를 나타냅니다. 부분 참조 |
name |
필수 사항입니다. 이 클래스의 이름입니다. 선언된 요소 이름을 참조하세요. |
Of |
선택 사항입니다. 제네릭 클래스임을 지정합니다. |
typelist |
Of 키워드를 사용하는 경우 필수입니다. 이 클래스의 형식 매개 변수 목록입니다. 형식 목록을 참조하세요. |
Inherits |
선택 사항입니다. 이 클래스가 다른 클래스의 멤버를 상속한다는 것을 나타냅니다. Inherits 문을 참조하세요. |
classname |
문을 사용하는 경우 필수입니다 Inherits . 이 클래스가 파생되는 클래스의 이름입니다. |
Implements |
선택 사항입니다. 이 클래스가 하나 이상의 인터페이스의 멤버를 구현한다는 것을 나타냅니다. Implements 문을 참조하세요. |
interfacenames |
문을 사용하는 경우 필수입니다 Implements . 이 클래스가 구현하는 인터페이스의 이름입니다. |
statements |
선택 사항입니다. 이 클래스의 멤버를 정의하는 문입니다. |
End Class |
필수 사항입니다. 정의를 종료합니다 Class . |
비고
문은 Class 새 데이터 형식을 정의합니다.
클래스는 OOP(개체 지향 프로그래밍)의 기본 구성 요소입니다. 자세한 내용은 개체 및 클래스를 참조하세요.
네임스페이스 또는 모듈 수준에서만 사용할 Class 수 있습니다. 즉, 클래스의 선언 컨텍스트 는 소스 파일, 네임스페이스, 클래스, 구조체, 모듈 또는 인터페이스여야 하며 프로시저 또는 블록이 될 수 없습니다. 자세한 내용은 선언 컨텍스트 및 기본 액세스 수준을 참조하세요.
클래스의 각 인스턴스는 다른 모든 인스턴스와 독립적인 수명을 갖습니다. 이 수명은 새 연산자 절 또는 함수(예: CreateObject.)에 의해 만들어지는 경우에 시작됩니다. 인스턴스를 가리키는 모든 변수가 Nothing 또는 다른 클래스의 인스턴스로 설정된 경우 종료됩니다.
클래스는 기본적으로 Friend 액세스로 설정됩니다. 액세스 한정자를 사용하여 액세스 수준을 조정할 수 있습니다. 자세한 내용은 Visual Basic의 액세스 수준을 참조하세요.
규칙
중첩. 한 클래스를 다른 클래스 내에서 정의할 수 있습니다. 외부 클래스를 포함하는 클래스라고 하며 내부 클래스를 중첩 클래스라고합니다.
상속. 클래스에서 Inherits 문을 사용하는 경우 기본 클래스 또는 인터페이스를 하나만 지정할 수 있습니다. 클래스는 둘 이상의 요소에서 상속할 수 없습니다.
클래스는 더 제한적인 액세스 수준을 가진 다른 클래스에서 상속할 수 없습니다. 예를 들어 클래스는
Public클래스에서 상속할Friend수 없습니다.클래스는 그 안에 중첩된 클래스에서 상속할 수 없습니다.
구현. 클래스에서 Implements 문을 사용하는 경우 지정
interfacenames한 모든 인터페이스에서 정의된 모든 멤버를 구현해야 합니다. 이에 대한 예외는 기본 클래스 멤버를 다시 설치하는 것입니다. 자세한 내용은 구현에서 "다시 구현" 을 참조하세요.기본 속성입니다. 클래스는 최대 하나의 속성을 기본 속성으로 지정할 수 있습니다. 자세한 내용은 기본값을 참조하세요.
행동
액세스 수준입니다. 클래스 내에서 자체 액세스 수준으로 각 멤버를 선언할 수 있습니다. 클래스 멤버는 기본적으로 프라이빗 액세스로 기본값인 변수 및 상수만 제외하고 공용 액세스로 설정됩니다. 클래스에 멤버 중 하나보다 더 제한된 액세스 권한이 있는 경우 클래스 액세스 수준이 우선합니다.
범위 클래스는 포함하는 네임스페이스, 클래스, 구조체 또는 모듈 전체의 범위에 있습니다.
모든 클래스 멤버의 범위는 전체 클래스입니다.
평생. Visual Basic은 정적 클래스를 지원하지 않습니다. 정적 클래스에 해당하는 함수는 모듈에서 제공합니다. 자세한 내용은 Module 문을 참조하세요.
클래스 멤버는 선언되는 방법과 위치에 따라 수명을 갖습니다. 자세한 내용은 Visual Basic의 수명을 참조하세요.
자격. 클래스 외부의 코드는 해당 클래스의 이름으로 멤버의 이름을 한정해야 합니다.
중첩 클래스 내의 코드가 프로그래밍 요소에 대한 정규화되지 않은 참조를 만드는 경우 Visual Basic은 중첩 클래스에서 먼저 요소를 검색한 다음, 포함하는 클래스에서 요소를 검색하고, 가장 바깥쪽에 포함된 요소로 내보낼 수 있습니다.
클래스 및 모듈
이러한 요소에는 많은 유사점이 있지만 몇 가지 중요한 차이점도 있습니다.
용어. 이전 버전의 Visual Basic은 클래스 모듈(.cls 파일) 및 표준 모듈 (.bas 파일)의 두 가지 모듈 유형을 인식합니다. 현재 버전은 각각 이러한 클래스 와 모듈을 호출합니다.
공유 멤버입니다. 클래스의 멤버가 공유 멤버인지 인스턴스 멤버인지 여부를 제어할 수 있습니다.
개체 방향입니다. 클래스는 개체 지향이지만 모듈은 그렇지 않습니다. 클래스의 인스턴스를 하나 이상 만들 수 있습니다. 자세한 내용은 개체 및 클래스를 참조하세요.
예시
다음 예제에서는 문을 사용하여 Class 클래스 및 여러 멤버를 정의합니다.
Class BankAccount
Shared interestRate As Decimal
Private accountBalance As Decimal
Public holdOnAccount As Boolean = False
Public ReadOnly Property Balance() As Decimal
Get
Return accountBalance
End Get
End Property
Public Sub PostInterest()
accountBalance = accountBalance * (1 + interestRate)
End Sub
Public Sub PostDeposit(ByVal amountIn As Decimal)
accountBalance = accountBalance + amountIn
End Sub
Public Sub PostWithdrawal(ByVal amountOut As Decimal)
accountBalance = accountBalance - amountOut
End Sub
End Class
참고하십시오
.NET