Section 42.1: 정적 (Static) 클래스
하나의 클래스를 "static" 키워드를 이용하여 선언하는 경우, 아래와 같은 3가지의 효과를 갖게 된다:
static
클래스에 대한 인스턴스를 생성할 수 없다 (이로 인해 기본 생성자 역시 제거된다)- 클래스내의 모든 속성값들과 메소드들 역시
static
으로 선언되어야 한다. static
클래스는sealed
클래스로써, 다른 클래스가 상속받을 수 없다.
역주: 인스턴스 생성자는 선언할 수 없지만 Static 생성자는 여전히 선언할 수 있습니다. (https://nochoco-lee.tistory.com/647)
public static class Foo {
// 해당 클래스가 인스턴스화 될 수 없으므로 생성자가 없음에 유의한다
public static int Counter {
get;
set;
}
public static int GetCount() {
return Counter;
}
}
public class Program {
static void Main(string[] args) {
Foo.Counter++;
Console.WriteLine(Foo.GetCount()); // 출력 결과는 1 이 된다
// var foo1 = new Foo();
// Foo 클래스는 생성자를 가질 수 없으므로 위 코드는 에러릏 발생시킬 것이다
}
}
본 문서는 C# Notes for Professionals (라이센스:CC-BY-SA) 를 한글로 번역한 문서입니다. 번역상 오류가 있을 수 있으므로 정확한 내용은 원본 문서를 참고하세요.
[출처] https://books.goalkicker.com/CSharpBook/
반응형
'번역 > C# Notes for Professionals' 카테고리의 다른 글
42.3: Static 키워드 (0) | 2022.05.19 |
---|---|
42.2: 정적 (Static) 클래스의 수명 (lifetime) (0) | 2022.05.19 |
41.7: 명시적 구현 (Explicit Implementation) 을 이용해 멤버를 숨김 처리하기 (0) | 2022.04.26 |
41.6: 인터페이스 사용 목적 (0) | 2022.04.23 |
41.5: 다중 인터페이스 구현 (implement) 하기 (0) | 2022.04.23 |