■  생성자(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)

Destructors (C# Programming Guide)

IDisposable Interface

how to use constructor (basic)

'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
Posted by 마마필로 :