생성자
- 인스턴스가 생성될 때마다 호출되는 인스턴스 초기화 메서드 입니다.
- 인스턴스 생성시 수행할 작업(인스턴스 변수 초기화)에 사용 됩니다.
생성자 규칙
- 생성자의 이름이 클래스 이름과 같아야 한다.
- 리턴값이 없다. 하지만 생성자는 이름 앞에 void 를 붙이지 않는다. 그 이유는 항상 반환값이 없기 때문이다.
- 모든 클래스는 반드시 생성자를 가져야 한다.
- 생성자를 만들어주지 않으면 매개변수가 없는 기본 생성자를 컴파일러가 자동으로 만들어 준다.
- 매개변수가 있는 생성자를 만들게 되면 매개변수가 없는 기본 생성자를 컴파일러가 만들어주지 않는다. 필요하다면 직접 만들어서 사용해야 한다.
생성자 this()
- 생성자에서 다른 생성자 호출할 때 사용 합니다.
- 같은 클래스 내에서 생성자들끼리 호출할 때 사용 합니다.
- 다른 생성자 호출시 첫 줄에서만 사용가능 합니다.
참조변수 this
- 인스턴스 자신을 가리키는 참조변수, 인스턴스의 주소가 저장되어 있습니다.
- 생성자 this() 와 참조변수 this는 연관이 없다.
- 인스턴스 메서드(생성자 포함)에서만 사용 가능 합니다.
- 지역변수와 인스턴스 변수를 구별할 때 사용 합니다.
car (int a,int b,int c){
price = a;
speed = b;
width = c;
}
car (int price,int speed,int width){
this.price = price;
this.speed = speed;
this.width = width;
}
위의 코드를 보면 지역 변수와 인스턴스 변수가 다른 메서드이면 this를 사용하지 않아도 지역변수와 인스턴스 변수를 구별할 수 있기 때문에 생략이 가능합니다. 하지만 지역 변수와 인스턴스 변수가 같은 메서드에서는 this로 지역 변수와 인스턴스 변수를 구별해 줘야 합니다.