■ 생성자(Constructor)
객체지향프로그래밍(OOP: objective-oriented programming)에서 쓰이는 객체 초기화 함수.
(네이버 용어사전 참고)
■ 생성자를 쓰는 이유(생성자의 역할)
1. 필드 내 정보 보호
→ 캡슐화의 원칙상 필드는 가급적이면 숨기는 것이 좋다.
→ 중요한 필드가 외부로 공개되어 있으면 아무나 정보를 건드릴 수 있어 안전하지 못하다.
→ 따라서 객체는 적당한 수준의 정보은폐를 스스로 해야 한다.
2. 객체(클래스의 필드) 초기화
→ 객체가 스스로를 초기화 하지 않음
→ 필드 유효화를 위해 필드에 값 대입 필요
→ Main에서 직접 초기화 하지 않고 생성자를 통해 초기화 가능
■ 생성자 사용 규칙
1. 생성자 메서드의 이름은 클래스 이름과 동일해야 한다.
2. 객체의 성질은 public과 static 두가지 사용 가능. 한 개의 클래스에 생성자가 두 개 같이 들어갈 일은 거의 없고, 주로 한개만 사용한다.
3. 사용자가 호출하는 것이 아니므로 리턴할 수 없다. void같은 리턴 타입도 적을 필요 없다.
4. 생성자가 있으면 반드시 인수값을 전달해야 한다.
5. 한 클래스 내에 여러 개의 생성자를 정의 할 수 있다.
6. 한 클래스 내에 정의된, 각 생성자가 요구하는 인수가 다르므로 오버로딩 가능하다.
7. 생성자끼리 호출 가능 하다(호출 문법: :this (인수)). 생성자끼리의 호출로 반복되는 코드 작성을 피할수 있다.
■ 생성자 호출시기
객체 생성 시에 자동으로 호출
정적생성자(static constructor) → 정적인 멤버가 호출 되는 순간
인스턴스 생성자(public constructor) → 인스턴스 객체가 선언되는 순간. 생성자 호출한 후 객체 만듬.
■ 소멸자(Destructor)
객체지향프로그래밍(OOP: objective-oriented programmin)에서 쓰이는 객체 파기 함수.
[!] 문법적으로 만들어져 있으나 닷넷에서는 가비지 컬렉터(Garbage Collector)에 의해 자원이 관리되므로 소멸자를 쓸일이 거의 없다.
■ 파괴하고자 하는 클래스 이름 앞에 ~ 기호를 붙인다.
See Also
Constructors (C# Proganmming Guide)
'PROGRAMMING > C#.NET' 카테고리의 다른 글
Properties (0) | 2011.03.13 |
---|---|
static and instance (0) | 2011.03.11 |
chap.3 타입 2. 참조 타입 (0) | 2011.03.08 |
chap.3 타입 1.값 타입 (0) | 2011.03.08 |
[0304과제] 연산자 종류(C, C#) (0) | 2011.03.06 |