인스턴스가 생성될 때마다(new 연산자로 클래스로부터 객체를 생성할 때) 호출되는 인스턴스 초기화 메서드
(=> 초기화란? 객체를 만들고, 원하는 값으로 세팅 한 것!)
생성자를 실행하지 않고는 클래스로부터 객체를 만들 수 없다.
new 연산자에 의해 생성자가 성공적으로 실행되면 힙 heap 영역에 객체가 생성되고 객체의 번지가 리턴된다(주소값이 복사된다). 리턴된 번지(주소)는 클래스 변수에 저장된다.
Time t = new Time(); // *** t는 클래스 변수 ***
// <<인스턴스 변수>>
int hour;
int minute;
int second;
t.hour = 12; // .으로~ 생성된 객체를 호출 + hour 매개 변수(메소드)를 호 출하여
// 12의 값으로 초기화 했다는 의미!!!
t.minute = 34;
t.second = 56;
TV를 원하는 시간 '12시 34분 56초' 으로 초기화 한 것이다.
(객체를 만들고 _원하는 값으로 세팅 한 것_)
=> Time t = new Time(12,34,56);
// 생성자 호출한 것 (=생성자 사용한것 = 일 시킨 것)
class Car {
String color;
String gearType;
int door;
Car(){ } // 기본 생성자
Car(String color, String gearType, int door){ // 매개변수 생성자
this.color = color;
// ㄴ>필드 ㄴ>매개변수
this.gearType = gearType;
// ㄴ>필드 ㄴ>매개변수
this.door = door;
// ㄴ>필드 ㄴ>매개변수
}
}
this 인스턴스 자신을 가리키는 참조변수, 인스턴스의 주소가 저장되어 있다. 모든 인스턴스메서드에 지역변수로 숨겨진 채로 존재한다.
this(), this(매개변수) 생성자, 같은 클래스의 다른 생성자를 호출할 때 사용한다.