자바에는 This의 개념이 있다. 동일한 이름의 호출 충돌을 막기 위해서 This가 있으며
this는 자신의 객체를 의마하고 This()는 클래스 내 자신의 생성자를 의미한다.
즉 this 는 인스턴스 맴버의 필드나 메서드를 의미한다.
This 와 This()에는 다른 메서드이다.
여기서는 This() 메서드에 대해서 설명하겠다.
This() 메서드
This() 메서드는 클래스 내 해당 생성자를 호출하는 메서드이다.
클래스에는 오버로딩을 통해서 여러가지 생성자가 존재하는데 모두 이름은 동일하다
어떤 생성자를 불러올 것이며, 어떻게 불러올 것인가
이를 해결하기 위해서 This() 메서드가 필요할 것이다.
class A{
A(){
System.out.println("첫번째 생성자");
}
A(int a){
this(); //생성자 첫 줄 위치
System.out.println("두번째 생성자");
}
}
이렇게 되면 A(int a)인 생성자가 호출될때 This()로 인해 첫번째 생성자도 호출하게 된다.
This() 를 사용하기 위해서는 2가지 규칙이 있다.
- 생성자 내부에서만 사용가능
- 생성자의 첫 줄에 위치 해야한다.
이를 응용하면 더욱 깔끔한 코드 작성이 가능해진다.
만약 메서드에서 생성자를 만들 때, 여러 매개 변수를 가지고 있는 생성자를 만들라고 하면 어떻게 만들 것인가?
흔히 다들 이렇게 여러가지 생성자를 오버로딩해서 만들려고 할 것이다.
이렇게 값을 중복으로 초기화 하는 것은 비효율적이다 .
This() 사용을 통해서 해당 생성자에 초기화 값을 불러와 중복 초기화를 생략하는 것이다.
이렇게 작성한다면 더욱 깔끔한 코드를 작성할 수 있을 것이다.
'Development > Java' 카테고리의 다른 글
[Java, 개념] 부모 생성자가 먼저 생성되는 이유 (0) | 2022.07.22 |
---|---|
[Java, 개념] 객체의 다운캐스팅 (1) | 2022.07.22 |
[Java, 개념] 가변 길이 배열 입력 매개변수 (0) | 2022.07.21 |
[Java, 개념] 자료형, 반복문, String class 자잘한 정보 (0) | 2022.07.21 |
[Java, 개념] 제어문 Switch문과 Break (0) | 2022.07.20 |