0Pricing
C# Academy · 강의

클래스의 기본 생성자

형식 헤더에서 생성자 매개 변수를 선언합니다.

클래스의 기본 생성자은(는) CoddyKit의 무료 C# Academy 강의입니다. 이것은 4개 중 1번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 C# Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. C# Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

기본 생성자란 무엇인가요

기본 생성자를 사용하면 class Point(int x, int y)처럼 클래스 헤더에 생성자 매개 변수를 직접 선언할 수 있습니다. 매개 변수는 전체 클래스 본문에서 유효한 범위에 있습니다.

using System;

class Point(int x, int y) {
    public int X => x;
    public int Y => y;
}

var p = new Point(3, 4);
Console.WriteLine(p.X + "," + p.Y); // 3,4

반복 코드가 사라집니다

기본 생성자가 없을 때는 매개 변수를 필드에 복사하기 위해서만 생성자 본문을 작성해야 했습니다. 이제 헤더에서 매개 변수를 선언하고 직접 참조할 수 있습니다.

using System;

class Greeter(string name) {
    public string Greet() => "Hello, " + name + "!";
}

Console.WriteLine(new Greeter("Ada").Greet()); // Hello, Ada!

매개 변수는 어디서나 유효합니다

기본 생성자의 매개 변수는 클래스 안 어디에서든 속성 초기화 구문, 메서드 본문, 필드 초기화 구문에 사용할 수 있습니다.

using System;

class Circle(double radius) {
    public double Area => Math.PI * radius * radius;
    public double Circumference => 2 * Math.PI * radius;
}

var c = new Circle(2);
Console.WriteLine(Math.Round(c.Area, 2)); // 12.57

필드와 속성 초기화하기

기본 생성자 매개 변수를 사용하여 선언 시점에 필드나 속성을 초기화할 수 있습니다.

using System;

class Account(decimal initial) {
    public decimal Balance { get; private set; } = initial;
    public void Deposit(decimal amount) => Balance += amount;
}

var a = new Account(100m);
a.Deposit(50m);
Console.WriteLine(a.Balance); // 150

헤더에서 유효성 검사하기

필드에 할당할 때 예외 발생 표현식을 사용하여 기본 생성자 매개 변수를 인라인으로 검증할 수 있습니다.

using System;

class Person(string name) {
    public string Name { get; } =
        string.IsNullOrWhiteSpace(name)
            ? throw new ArgumentException("name required")
            : name;
}

Console.WriteLine(new Person("Lin").Name); // Lin

추가 생성자 추가하기

기본 생성자가 있는 클래스도 추가 생성자를 선언할 수 있지만, 추가 생성자는 : this(...)를 사용하여 기본 생성자에 연결해야 합니다.

using System;

class Box(int width, int height) {
    public int Width => width;
    public int Height => height;
    public Box(int size) : this(size, size) { }
}

var sq = new Box(5);
Console.WriteLine(sq.Width + "x" + sq.Height); // 5x5

기본 생성자 본문

기본 생성자 자체에는 본문이 없습니다. 생성 시 실행해야 하는 로직은 필드 초기화 구문이나 연결된 일반 생성자에 작성합니다.

using System;

class Logger(string prefix) {
    private readonly string tag = "[" + prefix + "]";
    public void Log(string msg) => Console.WriteLine(tag + " " + msg);
}

new Logger("INFO").Log("started"); // [INFO] started

공개 속성을 자동으로 만들지는 않습니다

레코드와 달리 일반 클래스의 기본 생성자는 공개 속성을 만들지 않습니다. 매개 변수는 직접 노출하지 않는 한 클래스 내부에서만 사용할 수 있습니다.

using System;

class Temp(double celsius) {
    // celsius is NOT a public property here
    public double Fahrenheit => celsius * 9 / 5 + 32;
}

Console.WriteLine(new Temp(100).Fahrenheit); // 212

캡처된 매개 변수는 필드가 됩니다

기본 생성자 매개 변수를 초기화 구문뿐 아니라 메서드에서도 사용하면, 컴파일러가 생성 이후에도 값이 유지되도록 숨겨진 필드에 캡처합니다.

using System;

class Counter(int start) {
    private int value = start;
    public int Next() => value++;
}

var c = new Counter(10);
Console.WriteLine(c.Next()); // 10
Console.WriteLine(c.Next()); // 11

더 깔끔한 DI

기본 생성자는 DI에 자주 사용됩니다. 헤더에 서비스를 선언하고 수동으로 필드에 할당하지 않아도 메서드에서 사용할 수 있습니다.

using System;

interface IClock { string Now(); }
class FakeClock : IClock { public string Now() => "12:00"; }

class Service(IClock clock) {
    public string Report() => "Time is " + clock.Now();
}

Console.WriteLine(new Service(new FakeClock()).Report()); // Time is 12:00

함께 사용하기

이 클래스는 기본 생성자로 의존성을 받고 계산된 속성을 노출하며, 명시적인 생성자 본문은 사용하지 않습니다.

using System;

class Rectangle(double w, double h) {
    public double Area => w * h;
    public double Perimeter => 2 * (w + h);
}

var r = new Rectangle(3, 4);
Console.WriteLine(r.Area + " " + r.Perimeter); // 12 14

빠른 확인

클래스에서 사용하는 기본 생성자를 이해했는지 확인해 보세요.

복습

클래스의 기본 생성자를 배웠습니다.

  • class C(int x)는 헤더에 생성자 매개 변수를 선언합니다.
  • 매개 변수는 클래스 본문 전체에서 유효합니다.
  • 추가 생성자는 : this(...)로 연결됩니다.
  • 일반 클래스에서는 매개 변수가 자동으로 공개 속성이 되지 않습니다.

자주 묻는 질문

“클래스의 기본 생성자” 강의는 무료인가요?

네 — “클래스의 기본 생성자” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 C# Academy 강의 전체를 잠금 해제할 수 있습니다. C# Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“클래스의 기본 생성자”에서 뭘 배우나요?

형식 헤더에서 생성자 매개 변수를 선언합니다. 브라우저에서 직접 실행하는 실습 코드로 C# Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

C# Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 C# Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 1번째 강의입니다.

“클래스의 기본 생성자” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 C# Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 C# Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 클래스의 기본 생성자
  2. 멤버에서 매개 변수 캡처
  3. 구조체의 기본 생성자
  4. 속성 및 기본 형식과 결합
← C# Academy(으)로 돌아가기