본문 바로가기
프로그래밍언어 & 프레임워크/C#

C# 생성자(Constructor)

by 공부하는개미 2021. 5. 22.
반응형

 

 

아래 글은 C# 생성자 관련 개념 정리 및 작성자 공부를 위해 작성되었습니다.

 

 

 

📃 참고자료

 

  • C# 교과서(길벗 출판사) - 35단원 생성자 470 ~ 481페이지
  • 유튜브채널 VisualAcademy [C# 교과서 마스터하기 35. 생성자]

 

 

 

https://www.youtube.com/watch?v=5Qi7VYJKQkE 

 

 

 

 

✳ 생성자 (Constructor)

 

  • 클래스 이름과 동일한 이름을 사용하는 메서드
  • 클래스 실행 시 제일 먼저 실행되는 메서드
  • 클래스(개체)를 초기화 시켜주는 메서드
    -> void 키워드를 붙이지 않고 반환 값도 없음

  • 생성자는 개체를 초기화
    -> 클래스 내의 필드를 초기화

  • 현실 세계에서 자동차의 시동을 거는 동작에 비유

 

 

 

 

✳ 기본 생성자 사용

 

  • 기본 생성자의 특징
    - public 액세스 한정자
    - 클래스명과 동일한 이름사용
    - 반환값도 없고, void도 아님
    - 매개변수가 없음
    - 모든 필드를 zero, false 또는 null로 초기화
  • 생성자 문법
    -> class Data { public Data() { . . . }  }

 

 

 

 

예제코드(생성자의 종류)

using System;

namespace 생성자_종류
{
    // 클래스
    public class Person
    {
        // 필드
        private static readonly string _Name;
        private int _Age;

        //[!] 생성자 종류: 정적(static)과 인스턴스(instance)
        //[1] 정적 생성자
        static Person() { _Name = "홍길동"; }
        //[2] 인스턴스 생성자: 매개변수가 없는 생성자
        public Person() { _Age = 21; }
        //[3] 인스턴스 생성자: 매개변수가 있는 생성자
        public Person(int _Age)
        {
            this._Age = _Age; // this.필드 = 매개변수;
        }

        // 정적 메서드
        public static void Show()
        {
            Console.WriteLine("이름 : {0}", _Name);
        }
        // 인스턴스 메서드
        public void Print()
        {
            Console.WriteLine("나이 : {0}", _Age);
        }
    }
    public class 생성자_종류
    {
        static void Main(string[] args)
        {
            //[1] 정적 생성자 실행
            Person.Show(); // 정적인 멤버 호출

            //[2] 인스턴스 생성자 실행
            Person p1 = new Person(); p1.Print(); // 인스턴스 멤버 호출
            Person p2 = new Person(22); p2.Print();
        }
    }
}

 

 

출처 (https://www.dotnetkorea.com/)

반응형

'프로그래밍언어 & 프레임워크 > C#' 카테고리의 다른 글

C# 열거형(Enumeration)  (0) 2021.05.24
C# 구조체(Structure Types)  (0) 2021.05.23
C# 필드(Field)  (0) 2021.05.21
C# 이벤트(Event)  (0) 2021.05.21
C# 대리자(Delegate)  (0) 2021.05.20