C#
[C#]생성자
이경로
2023. 7. 5. 01:14
객체를 선언할 때 class a = new class(); 처럼 선언한 뒤 필드(변수)들을 초기화 해 주는데,
초기화를 일일히 하지 않아도 원하는 값을 대입시킬 수 있다.
객체를 생성할 때 new 뒤에 오는 클래스명() 의 형태로 메소드를 정의하고, 원하는 초기값을 입력해 주면 객체 선언 시점에 해당 값이 객체에 삽입되게 된다. 이를 생성자라고 한다.
생성자의 오버로딩
생성자는 함수의 오버로딩과 같은 기능이 존재하는데
생성자와 같은 이름의 메소드를 선언하고 매개변수를 변경하여 필요에 따라 다른 생성자를 호출할 수 있다.
this.
생성자의 매개변수명을 원래 객체의 필드명과 동일하게 선언해준 뒤 원래 객체의 필드명 앞에 this를 붙혀 가독성을 좀더 높일 수 있다.
: this()
생성자를 여러 개 선언할 때 필드가 많다면 매번 필드를 전부 입력하는 것이 상당히 불편할 수 있다. 이때 활용 가능한 방법이다.
this(), 즉 classA() 메소드를 먼저 실행시킨 뒤 classA(int hp)를 실행한다. 이 경우 hp와 dmg의 변화 과정을 살펴보자면
hp/dmg : 0/0 -> 100/10(classA()) -> 50/10(classA(int hp)) 이다.