생성자
- 인스턴스가 생성될 때마다 호출되는 인스턴스 초기화 메서드 이다.
- 즉, 인스턴스 생성시 인스턴스 변수들을 초기화 해주는 것이다.
생성자의 규칙
- 이름이 클래스 이름과 동일해야 한다.
- 리턴 값이 없다. (void를 붙이지 않음.)
- 모든 클래스는 반드시 한 개이상의 생성자를 가져야 한다.
- 생성자를 명시하지 않은 메서드의 경우 기본 생성자를 가진다.
기본 생성자
- 매개변수가 없는 생성자
- 생성자가 하나도 없을 때만, 컴파일러가 자동으로 추가한다.
- 컴파일러가 자동으로 추가하지만, 기본 생성자를 직접 작성 해주는 것이 좋다.
- 생성자 오버로딩을 통해, 다양한 생성자를 선언한 경우에는 기본 생성자를 명시하지 않으면 에러가 발생한다.
public class ConstrutorEx {
public static void main(String[] args) {
/*
* 1.참조변수 만들어짐.
* 2.new연산자가 객체를 생성 함.
* 3.Car()를 통해 생성자를 호출하면서 객체를 초기화 함. (객체 초기화 == 생성자 호출)
*
* */
Car c1 = new Car(); // 기본 생성자 --> Car() 이 부분이 생성자를 호출하는 것.
Car c2 = new Car("white", "auto", 4); // 매개변수가 있는 생성자 --> Car(String, String, int) 생성자 호출
System.out.println(c1.color + " " + c1.gearType +" "+ c1.door);
System.out.println(c2.color + " " + c2.gearType + " " + c2.door);
}
}
class Car {
String color;
String gearType;
int door;
Car() {}; // 기본 생성자 명시
Car(String c, String g, int d){
this.color = c;
this.gearType = g;
this.door = d;
}
}
- 위 코드를 통해서 생성자 오버로딩을 알 수 있음.
- 기본 생성자는 명시해주는 것이 좋음.
- 객체를 생성하는 과정은 아래와 같다.
- 참조변수를 먼저 생성한다.
- new 연산자를 통해서 객체를 생성.
- 우측에 클래스 이름과 같은 생성자를 호출하여 객체를 초기화 해주는 것.
'JAVA' 카테고리의 다른 글
13. 멤버변수의 초기화 (0) | 2022.09.25 |
---|---|
12. this()와 this (0) | 2022.09.24 |
11. static 메서드와 instance 메서드 (0) | 2022.09.20 |
10. 참조형 반환타입 (0) | 2022.09.20 |
9. 기본형&참조형 매개변수 (0) | 2022.09.20 |