C# 인스턴스변수와 클래스변수
C#의 클래스에서 보면 인스턴스변수와 클래스변수라는 것이 있습니다. 둘 다 변수라는 점에서는 같지만 사용되는 방법이 다르므로 그 차이점을 집고 넘어가려고합니다.
그 전에 간단하게 인스턴스멤버와 클레스멤버에 대해서 써보자면, 일단 인스턴스는 클래스에서 객체를 말합니다. 만약에 Random 클래스(클래스이름의 첫글자는 대문자로 약속)의 인스턴스인 random이 있다고 치면 여기서 사용되는 녀석 random.Next(xx), random.NextDouble() 등 인스턴스 뒤에 점을 찍고서 사용하는 멤버들을 우리는 인스턴스 멤버라고 합니다. 그 멤버가 변수, 매서드, 속성 임에 따라서 각각 인스턴스변수, 매서드, 속성 이라고 표현하는 것이죠.
인스턴스변수
인스턴스 변수라고 함은 위에서 말했듯이 어떤 클래스의 인스턴스(객체)를 생성하고서 그 후에 사용되는 멤버중에 변수라고 생각하시면 되겠습니다.
예시로 위의 코드를 잠깐 살펴보자면 , 테스트(Test) 클래스의 객체인 test가 점을찍어서 사용할 수 있는 name이라는 변수는 인스턴스변수입니다. 간단하죠? 네
클래스변수
그렇다면 자연스럽게 클래스변수가 어떤 놈인지도 아시겠죠? 네
클래스변수의 예로는 Math클래스를 사용해보겠습니다. 위에 코드에서 보게되면 Math클래스에 점을 찍어서 PI(파이)값을 바로 출력하는 것을 확인 할 수 있습니다. 이때 인스턴스의 생성없이 바로 사용할 수 있었는데요? 이렇게 사용되는 것이 바로 클래스변수라고 생각하시면됩니다. 추가적인 사항으로는 클래스변수를 생성할때는 인스턴스변수와는 다르게 static 키워드가 필요하다는 점이 있겠네요.
'C#(.NET)' 카테고리의 다른 글
[c#] foreach 반목문 갖다뽀개버리기 (8) | 2017.10.20 |
---|---|
[오류해결] 코드 경로 중 일부만 값을 반환합니다. (1) | 2017.10.19 |
[C#] 속성 겟터와 셋터(get, set)키워드 알아보자 (6) | 2017.10.16 |
[C#] readonly 키워드를 알아보자 (0) | 2017.10.15 |
C# - var 키워드는 무엇인가 (초기화, 사용법) (13) | 2017.10.06 |