35.4 정적 생성자와 인스턴스 생성자

    생성자도 정적 생성자와 인스턴스 생성자로 구분할 수 있습니다. 클래스의 정적 멤버를 호출할 때 맨 먼저 호출되는 정적 생성자는 static 키워드로 만들며, 인스턴스 생성자는 public 키워드로 만듭니다.

    이번에는 생성자의 여러 가지 종류를 사용해 보겠습니다. 다음 내용을 입력한 후 실행해 보세요.

    여러 생성자 사용: ConstructorAll.cs

    using System;
    
    namespace ConstructorAll
    {
        public class Person
        {
            private static readonly string _Name;
            private int _Age;
    
            static Person() { _Name = "백승수"; } //① 정적 생성자
            public Person() { _Age = 21; }        //② 인스턴스 생성자: 매개변수가 없는 생성자
            public Person(int _Age)               //③ 인스턴스 생성자: 매개변수가 있는 생성자
            {
                this._Age = _Age;                 //this.필드 = 매개변수;
            }
    
            public static void Show()             //④ 정적 메서드
            {
                Console.WriteLine("이름 : {0}", _Name);
            }
    
            public void Print()                   //⑤ 인스턴스 메서드
            {
                Console.WriteLine("나이 : {0}", _Age);
            }
        }
    
        class ConstructorAll
        {
            static void Main()
            {
                //ⓐ 정적 생성자 실행
                Person.Show();              //정적인 멤버 호출
    
                //ⓑ 인스턴스 생성자 실행
                (new Person()).Print();     //인스턴스 멤버 호출
                (new Person(22)).Print();
            }
        }
    }
    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.