[C#] static

자몽이·2025년 10월 29일

C# 문법

목록 보기
5/12
post-thumbnail

static 키워드에 대해 알아보자


✅ static 이란 ?

static은 "객체가 아닌 클래스 자체"에 속한다는 뜻이다.
보통 클래스의 멤버(변수or함수)는 new로 생성해야만 사용할 수 있다.


public class Mouse
{
	public int weight = 1;
    
    public void WeightUp()
    {
    	weight++;
    }
   
}

//일반 멤버는 이렇게 사용 한다.
Mouse m = new Mouse();
m.WeightUP();

하지만 static은,

public class GameManager
{
	public static int score = 0;
    
    public static void AddScore()
    {
    	score++;
    ]
    
}


new 없이도 바로 접근 가능하다.

GameManager.AddScore();

즉, static 멤버는 모든 객체가 공유, 클래스 이름으로 접근이 가능하다.



✅ static 의 특징

1. static 변수

  • 프로그램 전체에서 하나만 존재하는 전역 변수의 느낌.
  • 두 객체를 만들어도 static 멤버변수를 가지고 있다면 두 객체 모두 같은 변수를 공유한다.

2. static 함수

  • 객체 없이 호출할 수 있는 함수이다.
  • new로 생성할 필요 없이 사용이 가능하고, 내부에서 인스턴스 멤버는 사용할 수 없다.

3. static 클래스

  • 모든 멤버가 static이어야 하고, 인스턴스 생성 자체가 불가능하다.
  • 프로그램 전체에서 공통적으로 사용할 유틸리티 클래스에 자주 쓰인다.


❗ static의 주의사항

  • static 멤버는 프로그램이 끝날 때까지 살아있다.
    그래서 전역 변수처럼 작동하지만, 메모리도 계속 점유한다는 점을 기억해야 한다.



Unity에서의 static

Unity에서는 static을 자주 볼 수 있다.

  • 싱글톤패턴, ManagerClass, 유틸리티 클래스에 자주 사용된다.
  • 주의해야 할 점으론 메모리 해제가 복잡하고 테스트가 어렵다.
  • 남용은 지양하고 정말 전역적으로 공유되어야 하는 필요한 정보에만 사용하는게 좋다.
profile
개발자가 되는 그 날 까지

0개의 댓글