C# 강좌 : 제 15강 - 생성자 & 소멸자

   

생성자 (Constructor)


생성자 (Constructor)란 클래스와 같은 이름을 갖는 함수를 의미합니다. 객체가 초기에 생성될 때 자동적으로 1회 호출되는 함수입니다. 주로 객체 내의 정보를 초기화 하는 수단이며, return 값이 없습니다.

  • Tip : 명시적으로 생성자를 선언하지 않아도 컴파일러가 암시적으로 기본생성자를 생성합니다. 가비지


소멸자 (Destructor)


소멸자 (Destructor)란 객체가 메모리에서 제거될 때마다 실행되는 함수입니다. 가비지 컬렉터(garbage collector)가 객체의 소멸을 관리하기 때문에 언제 실행될지 예측할 수 없습니다.

  • Tip : 명시적으로 소멸자를 선언하지 않아도 컴파일러가 암시적으로 기본소멸자를 생성합니다.


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace test
{
    class ClassFile
    {
        public ClassFile()
        {
            Console.WriteLine("생성");
        }

        public void start()
        {
            Console.WriteLine("실행");
        }

        ~ClassFile()
        {
            Console.WriteLine("소멸");
        }
    }
}

위와 같은 클래스 파일을 만들고 생성자와 소멸자를 구성하였습니다.


private void button1_Click(object sender, EventArgs e)
{
    ClassFile class_start = new ClassFile();
    class_start.start();
}

button1에 ClassFile을 불러오고 start()를 실행할 경우 생성, 실행 문구를 확인할 수 있습니다.


private void button2_Click(object sender, EventArgs e)
{
    GC.Collect();
}

button2가비지 컬렉터(garbage collector)를 호출하면 소멸이라는 문구를 확인할 수 있습니다.

  • Tip : GC.Collect(); 더 이상 활용되지 않는 자원(주로 메모리)을 검출하여 제거를 수행하는 모듈


class 이용하여 객체를 만들 때 초기화해야하거나 1회 실행되어야 하는 코드가 있을때 생성자를 이용하고, 소멸자는 언제 호출될지 모르기 때문에 구현하지 않는것이 좋습니다.



도움이 되셨다면 광고 클릭 부탁드립니다.

⤧  Next post C# 예제 : Input Box ⤧  Previous post C# 강좌 : 제 14강 - 클래스 & 메소드 (2)