[TIL-251225] Static

데비·2025년 12월 26일

본과정

목록 보기
15/79

오늘 배운 내용

- Static


Static

  • static은 프로그램이 종료될 때 까지 할당 해제되지 않고 고정된 영역의 메모리의 공간을 할당할 때 사용한다.
  • 예를 들면 게임 내에서 지속적으로 다뤄져야 하는 누적 점수, 플레이 타임, 상황이 변해도 바뀌면 안되는 설정치 등과 같은 변수의 개념부터 클래스와 같은 참조 타입까지 선언이 가능하다. (강한 힘에는 강한 책임이 따른다)
  • static 선언 시, 프로그램 전역에서 호출이 가능하다.

- 메모리 상주

  • static 키워드를 사용하면 해당 요소는 프로그램 종료시까지 메모리에 계속해서 머무르고, 할당 해제되지 않는다.
  • 필요이상의 객체를 static으로 선언한다면 불필요한 메모리를 계속해서 사용하게 된다.
public class Tester
{
	private StaticStudy _study = new StaticStudy();
    
    public void Run()
    {
    Console.WriteLine(StaticStudy.staticValue);
    // static타입의 호출
    Console.WriteLine(_study.Value);
    // class 타입의 호출 (참조를 타고가서 읽어야 함)
    }
}
public class StaticStudy
{
// 프로그램 전역에서 사용 가능
// 프로그램 종료시까지 메모리에 상주함
	public static int staticValue = 15;

	public int value = 99;
    
	public static void Devi()
	{
		Console.WriteLine("Call Devi")
	}
}

static class

  • static class의 경우, 내부에는 static으로 지정된 필드와 메서드만 가질 수 있다.
  • 게임에서 주로 쓰이는 기능들을 미리 구현해두고 사용할 수 있다.

0개의 댓글