Deff_Dev

[Unity/C#] static (정적 메소드, 정적 변수, 정적 클래스, 확장 메소드) 본문

Unity(유니티)/유니티 공부

[Unity/C#] static (정적 메소드, 정적 변수, 정적 클래스, 확장 메소드)

Deff_a 2024. 3. 12. 02:18

해당 포스팅은 고박사님의 유니티 C# 강의를 보고 공부한 내용과 추가적으로 공부한 내용을 정리한 포스팅입니다.

 

static

  • 정적 메소드, 정적 변수, 정적 클래스 구현에 사용
  • 정적 메소드, 정적 변수는 클래스의 인스턴스가 아닌 클래스 자체에 소속

정적 메소드

  • 인스턴스 메소드와 달리 클래스로부터 객체를 생성하지 않고 직접 호출
  • 메소드 내부에서 intance 멤버를 참조할 수 없다.
  • new로 만들어진 클래스 객체로부터 호출될 수 없다.

정적 메소드에서 인스턴스 메소드 호출 불가능

 

 

객체 생성 없이 정적 메소드 호출 가능


정적 변수

  • 인스턴스 변수와 달리 클래스로부터 객체를 생성하지 않고 직접 호출할 수 있다.
  • 인스턴스 변수는 클래스 인스턴스를 생성할 때마다 메모리에 매번 새로 생성되지만 static 변수는 프로그램 로딩 시 단 한번만 생성되고 공용으로 사용 가능하다.


정적 클래스

  • 클래스를 정의할 때 static 키워드를 붙혀서 정의
  • 모든 멤버가 static으로 정의되어야 한다.
  • static 생성자는 게임 시작 시 자동으로 호출된다.


확장 메소드

  • 확장 메소드는 기존 클래스의 기능을 확장하는 기법
  • 다른 클래스에 인스턴스 메소드를 추가할 수 있는 기능
  • 클래스 자체의 내용을 수정할 수 없고, 외부에서 그 클래스에 기능을 추가하고 싶을 때 사용