정적 메서드와 인스턴스 메서드
닷넷의 많은 API처럼 우리가 새롭게 만드는 클래스는 메서드를 포함한 각 멤버에 static 키워드 유무에 따라 정적 또는 인스턴스 멤버가 될 수 있습니다. 앞으로 계속해서 다룰 내용인데요. 먼저 다음 예제를 실행해 보세요.
정적 메서드와 인스턴스 메서드: MyFirstClass.cs
using System; class MyFirstClass { static void StaticMethod() => Console.WriteLine("[1] 정적 메서드"); void InstanceMethod() => Console.WriteLine("[2] 인스턴스 메서드"); static void Main() { MyFirstClass.StaticMethod(); //① 정적 메서드 호출 MyFirstClass my = new MyFirstClass(); //② 인스턴스 메서드 호출 my.InstanceMethod(); } }
실행 결과
[1] 정적 메서드 [2] 인스턴스 메서드
①은 static이 붙은 정적 메서드를 클래스.메서드(); 형태로 호출합니다. 정적 메서드는 클래스에서 공유해서 사용하기에 공유 메서드라고도 합니다.
②는 static이 붙지 않은 인스턴스 멤버를 클래스의 인스턴스로 생성한 후 해당 인스턴스 개체를 사용하여 호출합니다. 이처럼 클래스 내 멤버를 구성할 때 static이 붙으면 정적 멤버가 되고, static이 붙지 않으면 인스턴스 멤버가 됩니다.