생성자
생성자의 역할은 객체의 생성과 동시에 초기화를 해주는 역할을 한다.
클래스에 처음 입문하고 객체에 인스턴스를 하기 위해 생성자를 사용했는데
우리는 생성자를 만든 적이 없는데 어떻게 생성자가 있는지 의문이 들었을 텐데
컴파일러는 생성자가 없다면 따로 기본 생성자를 만듦.
그래서 생성자를 따로 만들지 않아도 사용이 가능하다.
또 생성자는 하나라도 만들게 되면 컴파일러는 기본 생성자를 제공하지 않는다.
기본 생성자를 제공한다고 하여 생성자를 만들지 않게 되면
쓰레기 값이 들어가 원하지 않는 결과를 초래하게 된다.
초기화는 습관이다.
생성자는 메소드 오버 로딩이 가능.
초기화가 필요한 경우 생성자를 꼭 만드는 게 좋다.
종료자
C++에서는 종료자와 같은 역할을 하는 소멸자가 있음.
종료자의 형식은 아래의 형식으로 사용이 가능
~클래스이름()
이 종료자는 C++의 소멸자 와는 달리 직접 호출이 불가능하다.
그럼 어떻게 실행하는가?
CLR의 가비지 컬렉터가 객체가 소멸되는 시점을 판단해서 종료자를 호출한다.
CLR의 가비지 컬렉터는 치워야 할 쓰레기가 일정한 양이 되어야 실행이 된다.
즉, 언제 이 녀석이 종료자를 호출할지 모른다는 소리.
그리고 명시적으로 종료자를 작성했을 경우 객체가 소멸할 때 처리해야 할 일을 일일이 작성해줘야 하는데 이 가비지 컬렉터는 똑똑해서 작성하지 않는다면 알아서 소멸 시킴.
다시 말해 사용하지 않으면 자동으로 제거해준다.
'C#' 카테고리의 다른 글
C# 얕은 복사, 깊은 복사 (0) | 2022.06.02 |
---|---|
C# 정적 필드, 메소드 (0) | 2022.06.01 |
C# 클래스 (0) | 2022.06.01 |
C# 로컬 함수 (0) | 2022.06.01 |
C# 메소드 오버로딩 (0) | 2022.06.01 |