오늘 배운 내용
- Static
Static
- static은 프로그램이 종료될 때 까지 할당 해제되지 않고 고정된 영역의 메모리의 공간을 할당할 때 사용한다.
- 예를 들면 게임 내에서 지속적으로 다뤄져야 하는 누적 점수, 플레이 타임, 상황이 변해도 바뀌면 안되는 설정치 등과 같은 변수의 개념부터 클래스와 같은 참조 타입까지 선언이 가능하다. (
강한 힘에는 강한 책임이 따른다)
- static 선언 시, 프로그램 전역에서 호출이 가능하다.
- 메모리 상주
- static 키워드를 사용하면 해당 요소는 프로그램 종료시까지 메모리에 계속해서 머무르고, 할당 해제되지 않는다.
- 필요이상의 객체를 static으로 선언한다면 불필요한 메모리를 계속해서 사용하게 된다.
public class Tester
{
private StaticStudy _study = new StaticStudy();
public void Run()
{
Console.WriteLine(StaticStudy.staticValue);
Console.WriteLine(_study.Value);
}
}
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으로 지정된 필드와 메서드만 가질 수 있다.
- 게임에서 주로 쓰이는 기능들을 미리 구현해두고 사용할 수 있다.