Java 9 , this.
Java, 주요 문법 정리
문법 : this()
바로 전 포스팅에서 정리했던 this
와 유사하게 생긴 문법,
this()
에 대해 정리해보겠습니다.
this()? this?
일단 작성하는 것부터 괄호 차이 밖에 없는 두 문법을 옛날엔
보기만해도 머리가 지끈거렸습니다.
오늘 블로그에 내용을 정리하며 두 문법의 차이, 사용법을 확실히 익혀보겠습니다.
this
는 인스턴스의 자기 자신을 할당하는 것이라고 지난 포스팅에서 설명했습니다.
그렇다면 this()
는?
1
2
3
4
5
6
7
8
9
10
class Car {
public void Car() {
this("그랜저" , 874567);
}
public void Car(String carName , int modelNo) {
this.carName = name;
this.modelNo = modelNo;
}
}
이 코드에 this()
에 모든 것이 포함되어있습니다.
한 줄로 요약해보자면, this()
는 클래스 내에서 다른 생성자,
여기서는 다른 기능을 호출할 때 사용합니다.
자, 이게 무슨 말이냐면.
Car
클래스 내애는 여러가지 기능들, 다양한 생성자가 선언 될 것입니다.
생성자의 이름이 모두 다르면 사용할 일이 없겠지만, Java
에서는 다향성을 위해
같은 클래스의 이름을 여러번 사용하는 경우가 많습니다.
그럴떄마다 일일히 Car
를 선언하기 귀찮으니, this()
를 사용하여
코드를 간결화 시키는 것입니다.
Java
에서는 간결화를 위해 많은 방법들이 있습니다.
그중 오늘은 this()
를 사용한 예시를 적용시켜보았습니다.
마무리하는 겸 조금 더 긴 예제를 보여드리겠습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class Car{
String color; // 인스턴스 변수
String gearType;
int door;
Car(){
this("white", "auto", 4);
}
Car(String color){
this(color, "auto", 4);
}
Car(String color, String gearType, int door){
this.color = color;
this.gearType = gearType;
this.door = door;
}
}
몇 가지의 Car
생성자가 추가되었습니다.
Car(String color)
이 생성자와 Car()
생성자 모두 같은 생성자를 호출 하고 있습니다.
바로 마지막에 있는 Car(String color, String gearType, int door)
이 생성자를 말이죠.
this()
를 사용하는 법은 위 예제 코드처럼 간단합니다.
this(매개변수1 , 매개변수2 ...)
이렇게만 작성해주시면 됩니다.
그럼, 이렇게 써볼까요?
1
2
3
4
5
6
7
8
9
10
Class Car {
String color;
String gearType;
int door;
Car(){
System.out.println("첫번째 생성자입니다.");
this("black" , "auto" , 6);
}
}
이렇게 작성해볼까요?
여러분이 사용하시는 개발 Tool에서 이 코드를 작성해보시면 아마 에러가 발생할 겁니다.
그 이유는 바로 this()
는 항상 생성자의 첫번째 줄에 작성되어야한다는 규칙이 있습니다.
이 규칙에 맞추어 다시 작성해보면.
1
2
3
4
5
6
7
8
9
10
Class Car {
String color;
String gearType;
int door;
Car(){
this("black" , "auto" , 6);
System.out.println("첫번째 생성자입니다.");
}
}
이렇게 변경할 수 있습니다.
이렇게 this()
와 this
에 대해 정리해보았습니다.
당연히 부족한 내용도 있지만, 그래도 이제는 this
가 무엇인지는 감은 잡은 것 같아
조금 후련하네요.
다음에도 Java
의 주요 문법이나 제가 개인적으로 어렵다 느낀 주제를 가지고 작성해보겠습니다.