클래스와 모듈 비교
업데이트: 2007년 11월
클래스와 모듈은 정의된 항목을 캡슐화하는 참조 형식이지만 다른 프로시저에서 항목을 액세스하는 방법이 서로 다릅니다.
클래스와 모듈의 차이점
클래스와 모듈의 주요 차이점은 클래스는 개체로 인스턴스화될 수 있지만 표준 모듈은 개체로 인스턴스화될 수 없다는 것입니다. 표준 모듈의 데이터 복사본은 하나만 존재할 수 있으므로 프로그램의 한 부분에서 표준 모듈의 공용 변수를 변경하면 프로그램의 다른 부분에서도 해당 변수를 읽을 때 동일한 값을 얻습니다. 반면 개체 데이터는 인스턴스화된 각 개체마다 별도로 존재합니다. 뿐만 아니라 표준 모듈과 달리 클래스는 인터페이스를 구현할 수 있습니다.
![]() |
---|
Shared 한정자를 클래스 멤버에 적용하면 클래스의 특정 인스턴스 대신 클래스 자체와 연결됩니다. 멤버는 모듈 멤버를 액세스하는 방법과 같은 방법으로 클래스 이름을 사용하여 직접 액세스합니다. 공유 멤버에 대한 자세한 내용은 Visual Basic의 공유 멤버를 참조하십시오. |
또한 클래스와 모듈은 해당 멤버에 대해 다른 범위를 사용합니다. 한 클래스 내에 정의된 멤버는 해당 클래스의 특정 인스턴스 내에서 범위가 지정되며 해당 개체의 수명이 지속되는 동안에만 존재합니다. 클래스 외부에서 클래스 멤버에 액세스하려면 Object.Member 형식의 정규화된 이름을 사용해야 합니다.
그러나 모듈 내에서 선언된 멤버는 기본적으로 공개적으로 액세스할 수 있으며 해당 모듈에 액세스할 수 있는 모든 코드로 액세스할 수 있습니다. 따라서 표준 모듈의 변수는 해당 프로젝트의 어디에서나 볼 수 있으며 프로그램의 수명이 지속되는 동안 존재하므로 전역 변수에 해당합니다.