Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C# 매개변수화된 생성자(Parameterized Constructor)란? 개념부터 예제까지

C#에서 생성자(Constructor)에도 매개변수를 추가할 수 있습니다. 이렇게 매개변수를 받는 생성자를 매개변수화된 생성자(Parameterized Constructor)라고 부릅니다.

이 기법을 활용하면 객체가 생성되는 순간 원하는 초기값을 바로 할당할 수 있어, 별도의 설정 과정 없이 객체를 완전한 상태로 만들 수 있다는 장점이 있습니다.

매개변수화된 생성자의 기본 구조

먼저 간단한 클래스 정의부터 살펴보겠습니다.

// 클래스 선언
class Demo

다음은 rank라는 매개변수 하나를 받는 매개변수화된 생성자의 예입니다.

public Demo(int rank) {
   Console.WriteLine("RANK = {0}", rank);
}

전체 예제 코드

아래는 C#에서 매개변수화된 생성자를 실제로 어떻게 사용하는지 보여주는 완전한 예제입니다. Line 클래스는 객체 생성 시 길이 값을 전달받아 내부 필드를 초기화합니다.

using System;

namespace Demo {
   class Line {
      private double length; // 선의 길이

      public Line(double len) { // 매개변수화된 생성자
         Console.WriteLine("Object is being created, length = {0}", len);
         length = len;
      }

      public void setLength( double len ) {
         length = len;
      }

      public double getLength() {
         return length;
      }

      static void Main(string[] args) {
         // 생성자에 10.0을 전달하며 객체 생성
         Line line = new Line(10.0);
         Console.WriteLine("Length of line : {0}", line.getLength());

         // 선의 길이 변경
         line.setLength(6.0);
         Console.WriteLine("Length of line : {0}", line.getLength());
         Console.ReadKey();
      }
   }
}

실행 결과

위 코드를 실행하면 다음과 같은 출력 결과를 확인할 수 있습니다.

Object is being created, length = 10
Length of line : 10
Length of line : 6

핵심 정리

  • 매개변수화된 생성자는 객체 생성 시점에 인수를 전달받아 필드를 초기화합니다.
  • new Line(10.0)처럼 new 키워드와 함께 값을 전달하면, 생성자가 호출되면서 length 필드가 즉시 초기화됩니다.
  • 이후에는 setLength() 메서드를 통해 값을 변경할 수도 있습니다.
  • 생성자에서 초기값을 할당하면 코드가 더 간결해지고, 잘못된 상태의 객체가 만들어질 가능성을 줄일 수 있습니다.