더북(TheBook)

36.5 생성자, 메서드, 소멸자 함께 사용하기

이번에는 생성자, 메서드, 소멸자를 모두 사용하는 예제를 만들어 보겠습니다. 소멸자 내용을 보려면 닷넷 프레임워크 기반으로 콘솔 앱을 만드세요. 다음 내용을 입력한 후 실행해 보세요.

생성자, 메서드, 소멸자를 함께 사용: ConstructorMethodDestructor.cs

using System;

namespace ConstructorMethodDestructor
{
    public class Car
    {
        private string color;   //① 필드

        public Car()            //②-1 생성자: 기본 생성자
        {
            color = "검은";
            Console.WriteLine("{0}색 자동차를 조립합니다.", color);
        }

        public Car(string color) //②-2 생성자: 매개변수가 있는 생성자
        {
            this.color = color;
            Console.WriteLine("{0}색 자동차를 조립합니다.", color);
        }

        //③ 메서드
        public void Go() => Console.WriteLine("{0}색 자동차가 달립니다.", color);
        //④ 소멸자
        ~Car() => Console.WriteLine("{0}색 자동차를 폐차합니다.", this.color);
    }

    class ConstructorMethodDestructor
    {
        static void Main()
        {
            //Car 클래스의 인스턴스 생성
            Car car = new Car(); //생성
            car.Go();            //호출

            //폐차: 시점을 알 수 없고 GC 엔진이 알아서 실행

            //매개변수가 있는 생성자를 호출
            Car whiteCar = new Car("하얀");
            whiteCar.Go();

            Car blueCar = new Car("파란");
            blueCar.Go();
        }
    }
}
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.