Programing/C#
C# 프로그래밍의 기초: 생성자와 소멸자
유니얼
2024. 8. 24. 14:47
728x90
C# 프로그래밍에서 객체의 생명주기를 관리하는 데 중요한 역할을 하는 생성자와 소멸자는 객체가 생성되고 소멸될 때 필요한 작업을 자동으로 수행하는 특수한 메서드입니다. 이 블로그 글에서는 생성자와 소멸자의 역할, 기능, 그리고 구현 방법에 대해 자세히 알아보겠습니다.
생성자(Constructor)
기능과 목적:
생성자는 클래스의 인스턴스가 생성될 때 자동으로 호출되는 메서드로, 주된 목적은 객체의 초기화입니다. 이는 객체의 필드를 초기 설정하거나, 필요한 시작 작업을 수행하는 데 사용됩니다.
특징:
- 생성자는 클래스 이름과 같은 이름을 가집니다.
- 반환 타입을 지정하지 않으며, 이는 생성자가 값을 반환하지 않기 때문입니다.
- 파라미터를 포함할 수 있어 객체 생성 시 초기 데이터를 전달할 수 있습니다.
기본 생성자:
- 파라미터가 없는 생성자를 기본 생성자라고 합니다.
- 클래스에 명시적으로 어떠한 생성자도 정의하지 않은 경우, 컴파일러가 자동으로 기본 생성자를 제공합니다. 하지만 다른 생성자가 정의되어 있으면, 기본 생성자는 자동으로 생성되지 않습니다.
파라미터가 있는 생성자:
- 외부에서 데이터를 받아 객체의 상태를 초기화할 수 있습니다.
소멸자(Destructor)
기능과 목적:
소멸자는 객체가 더 이상 필요 없어 메모리에서 해제될 때 자동으로 호출되는 메서드입니다. 주로 객체가 사용한 외부 리소스를 정리하는 데 사용됩니다.
특징:
- 클래스 이름 앞에 ~를 붙여 정의합니다 (예: ~Car()).
- C#에서는 가비지 컬렉터가 대부분의 메모리 관리를 자동으로 처리하기 때문에, 소멸자를 사용할 필요가 적습니다.
- 소멸자의 호출 시점은 가비지 컬렉터의 판단 하에 이루어지므로 예측이 어렵습니다.
전체예제 코드
using System;
namespace CSharp_ProgramingStudy.Chapter5_OOP
{
class Car
{
public string color; // Car 클래스의 속성
// 파라미터가 있는 생성자
public Car(string initialColor)
{
color = initialColor; // 객체의 color 속성을 초기화
}
// 소멸자
~Car()
{
// 리소스 정리 로직
Console.WriteLine("Cleaning up resources...");
}
}
public class Class6
{
public void Run()
{
Car myCar = new Car("blue");
Console.WriteLine(myCar.color); // 출력: blue
}
}
}
결론
C#의 생성자와 소멸자는 객체의 생명주기를 효과적으로 관리할 수 있게 해주는 중요한 요소입니다. 생성자는 객체가 생성될 때 초기화를 보장하며, 소멸자는 객체가 소멸될 때 필요한 정리 작업을 수행합니다.
반응형