생성자(Constructor)
인스턴드(변수) 초기화 메서드로 인스턴스가 생성될 때마다 호출된다.
- 생성자도 오버로딩 개념
- 메서드 이름이 클래스 이름과 같아야 한다.
- 리턴값이 없다. void도 사용 X
- 모든 클래스는 반드시 생성자를 가져야 한다.
기본 생성자
- 매개변수가 없는 생성자
- 생성자가 하나도 없을 때만, 컴파일러가 자동으로 추가
- 항상 작성하는 습관을 들이는 것이 좋음
생성자 this()
- 생성자에서 같은 클래스에 있는 다른 생성자를 호출할 때 사용
- 첫번째 줄에서만 호출 가능
- 코드 중복 제거를 위해 사용
class Car2{
String color;
String gearType;
int door;
Car2(){
this("w", "auto", 4);
}
Car2(Stirng color){
this(color, "auto", 4);
}
Car2(Stirng color, String gearType, int door){
this.color = color;
this.gearType = gearType;
this.door = door;
}
}
참조변수 this
- 인스턴스(객체) 자신을 가리키는 참조변수로 인스턴스의 주소가 저장되어 있다.
- 생략 가능(원래 인스턴스 변수의 진짜 이름은 this.인스턴스 명)
- 생성자와 인스턴스 메서드(생성자 포함)에서만 사용 가능
- 지역변수와 인스턴스 변수의 이름이 같을 때 구분하기 위해 사용하며, 이때는 생략 불가
- 생성자 this()와 비슷하게 생겼을 뿐 완전히 다른 개념
- static 메서드에서는 사용 불가능, this는 객체 자신을 의미하는데 객체가 없기 때문