지역 변수
지역변수 (Local Variables)란 메소드 내에 선언된 변수를 의미합니다.
지역변수의 특징은 다음과 같습니다.
- 메소드가 실행될 때 변수를 저장하기 위한 메모리가 생성된다.
- 선언된 메소드 내부에서만 사용할 수 있다.
- 메소드의 실행이 종료될 때 메모리가 해제된다.
- 변수를 선언한 후, 초기 값을 부여하는 초기화가 꼭 필요하다.
클래스 변수
클래스 변수(Class Variables)란 클래스 내에 하나만 존재하며, 클래스 내의 모든 개체가 사용할 수 있는 변수를 의미합니다.
클래스 변수의 특징은 다음과 같습니다.
- static 키워드를 사용해서 변수를 선언한다.
- 클래스가 로딩될 때 변수를 저장하기 위한 메모리를 생성한다.
- 클래스명을 이용해서 접근한다.
- 모든 클래스 내의 인스턴스(개체)가 공유한다.
- 값을 지정하지 않은 경우에 0으로 자동 초기화한다.
여기서 눈여겨 볼 특징은 지역 변수는 초기화하지 않으면 사용할 수 없었던 반면에 클래스 변수는 초기화하지 않아도 0으로 자동 초기화 된다는 점입니다.
public class Example
{
public static int classvari = 0;
public Example()
{
classvari++;
vari++;
return;
}
public static void Main(string[] args)
{
Example e1 = new Example();
Example e2 = new Example();
Console.WriteLine(Example.classvari);
}
}
인스턴스 변수
인스턴스 변수(Instance Variables)란 클래스 멤버로 선언되어 객체가 생성될 때마다 메모리가 배정되는 변수를 말한다.
클래스 변수는 객체가 생성될 때마다 같은 클래스 변수를 사용했지만, 인스턴스 변수는 객체가 생성될 때마다 또 다른 변수를 만드는 것과 같다.
public class Example
{
public int vari = 0;
public Example()
{
vari++;
}
public static void Main(string[] args)
{
Example e1 = new Example();
Example e2 = new Example();
Console.WriteLine(e1.vari);
Console.WriteLine(e2.vari);
}
}
댓글 없음:
댓글 쓰기