-
C# 프로그래밍의 기초 : 생성자와 소멸자2024년 03월 02일
- 유니얼
-
작성자
-
2024.03.02.:01
728x90객체 지향 프로그래밍에서 객체의 생명주기를 관리하는 데 중요한 역할을 하는 것이 생성자(Constructor)와 소멸자(Destructor)입니다. C#을 포함한 많은 프로그래밍 언어에서 이 두 메서드는 객체가 생성될 때와 제거될 때 자동으로 호출되어, 객체의 초기화와 정리 작업을 담당합니다.
생성자(Constructor)
생성자는 클래스의 인스턴스가 생성될 때 자동으로 호출되는 특별한 메서드입니다. 주된 목적은 객체의 초기화로, 필드(속성)의 초기값을 설정하거나 객체 생성 시 필요한 다양한 준비 작업을 수행합니다.
특징
- 클래스 이름과 동일한 이름을 가집니다.
- 반환 타입을 지정하지 않습니다.
- 파라미터를 가질 수 있으며, 이를 통해 객체 생성 시 다양한 초기 상태를 설정할 수 있습니다.
기본 생성자와 파라미터가 있는 생성자
- 기본 생성자: 파라미터가 없는 생성자를 말하며, 사용자가 명시적으로 정의하지 않아도 컴파일러가 자동으로 제공합니다. 클래스에 어떠한 생성자도 정의하지 않았을 때만 컴파일러가 기본 생성자를 추가합니다.
- 파라미터가 있는 생성자: 초기화할 데이터를 외부에서 받아 객체의 상태를 설정할 수 있습니다. 이를 통해 객체 생성 시 다양한 초기 상태를 갖는 객체를 생성할 수 있습니다.
소멸자(Destructor)
소멸자는 객체가 더 이상 필요 없어져 메모리에서 해제될 때 자동으로 호출되는 메서드입니다. 주로 객체가 사용한 리소스를 정리하는 데 사용됩니다.
특징
- 클래스 이름 앞에 ~를 붙여 정의합니다.
- C#에서는 가비지 컬렉터가 대부분의 메모리 관리를 담당하기 때문에, 소멸자를 직접 작성할 필요가 적습니다.
- 필요한 경우, 파일 닫기, 네트워크 연결 해제 등의 리소스 정리 작업을 소멸자에 포함시킵니다.
전체 예제 코드
using System; class Program { class Car { // Car 클래스의 속성 public string color; /// <summary> /// Car 클래스의 생성자 /// 파라미터가 있는 생성자를 통해 객체 생성 시 초기 색상을 설정한다. /// </summary> /// <param name="initialColor">차량의 초기 색상</param> public Car(string initialColor) { color = initialColor; // 객체의 color 속성을 초기화 } /// <summary> /// Car 클래스의 소멸자 /// 객체가 메모리에서 해제될 때 호출되어 리소스를 정리한다. /// </summary> ~Car() { // 필요한 리소스 정리 로직을 여기에 작성 // 예: 파일 닫기, 네트워크 연결 해제 등 } } static void Main(string[] args) { // 'blue' 색상으로 Car 객체를 생성 Car myCar = new Car("blue"); Console.WriteLine(myCar.color); // 출력: blue } }
이 예제에서는 Car 클래스에 파라미터가 있는 생성자와 소멸자를 정의하고 있습니다. 생성자는 객체 생성 시 초기 색상을 설정하고, 소멸자는 객체가 메모리에서 해제될 때 호출됩니다.
결론
생성자와 소멸자는 객체의 생명주기를 관리하는 중요한 메커니즘으로, 객체의 안정적인 생성과 제거, 리소스의 효율적인 관리를 가능하게 합니다. 적절한 생성자를 통해 객체를 원하는 상태로 초기화하고, 필요한 경우 소멸자를 사용하여 리소스를 정리함으로써, 프로그램의 안정성과 효율성을 높일 수 있습니다.
반응형다음글이전글이전 글이 없습니다.댓글
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드
받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이
감지되어도 모달 창이 표시되지 않습니다.)