더북(TheBook)

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();
        }
    }
}
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.