생성자에 대한 정리이다.
생성자 이름은 클래스 이름과 같아야 한다.
반환 타입은 없고, 아무것도 지정하지 않아야 한다.
class Rabbit
{
public string name;
public int weight;
public rabbit()
{
name = "CuteRabbit";
weight = 10;
Console.WriteLine("생성자 호출");
}
}
Rabbit rabbit = new Rabbit();
- 생성자는 객체를 만들때 어떤 값들이 필요하다 를 강제할 수 있다.
- 객체가 만들어질 때 반드시 필요한 값들이 빠짐없이 세팅되도록 안전장치로 사용가능하다.
- 선언 초기화는 단순한 값만 넣을 수 있지만, 생성자는 로직이 포함된 초기화도 가능하다.
❔ 생성자를 굳이 왜 쓰는지, 선언하면서 값을 할당하면 더 간단한거 아닌가? 라는 의문이 들었다.
그러나 생성자의 진짜 목적은 '초기값을 넣는 것'이 아니라 객체가 만들어질 때의 규칙을 보장한다.
또한 Unity를 다루면서 생성자를 사용했던적이 드물었다.
그 이유로는,
1. Unity 에서는 생명주기가 생성자 역할을 대신 하기 때문이다.
2. Unity 객체는 Monobehaviour를 상속받아 Unity가 관리하므로 new로 생성되지 않는다.
3. Monobehaviour를 상속받지 않는 일반 C#클래스, 데이터, 유틸리티 클래스 등에는 new를 예외적으로 사용 가능하다.