생성자 선언과 호출
: new 연산자 는 객체를 생성한 후 연이어 생성자를 호출하여 객체를 초기화하는 역할
- 객체 초기화란? 필드를 초기화 하거나 메소드를 호출해서 객체를 사용할 준비를 하는 것

- 클래스 변수 = new 클래스();
- 생성자가 성공적으로 실행이 끝나면 new 연산자는 객체의 주소를 리턴
- 리턴된 주소는 클래스 변수에 대입되어 객체의 필드나 메소드에 접근할 때 이용
기본 생성자
: 모든 클래스는 생성자가 존재하며, 하나 이상을 가질 수 있음.
- 생성자 선언이 없으면 컴파일러는 기본 생성자를 바이트코드 파일에 자동 추가
// 소스파일 (Car.java)
public class Car{
}
// 바이트코드 파일 (Car.class)
public class Car{
public Car(){ } // 자동 추가
}
- But, 개발자가 명시적으로 선언한 생성자가 존재할 경우, 기본 생성자 추가X → 객체를 다양하게 초기화 하기 위함.
생성자 선언 및 초기화
public class Car {
// 필드 선언
String model;
String color;
// 생성자 선언
Car(String model, String color){
this.model = model;
this.color = color;
};
}
public class CarExample {
public static void main(String[] args) {
// 객체 생성
Car car1 = new Car("그랜저","검정색");
Car car2 = new Car("모닝","노랑색");
System.out.println(car1.model+"는 "+car1.color);
System.out.println(car2.model+"은 "+car2.color);
// Car myCar = new Car(); // 기본 생성자 호출 불가
}
}
- 객체마다 다른 값을 가져야 한다면 생성자에서 필드를 초기화하는 것이 좋다.
- 생성자 선언시 this는 현재 객체를 말한다.
'[Java] 자바' 카테고리의 다른 글
| [JAVA] 상속과 구현의 차이(extends와 implements) (0) | 2024.07.09 |
|---|---|
| [JAVA] 인터페이스 (1) | 2024.07.08 |
| [JAVA] null과 NullPointerException (1) | 2024.06.27 |
| [JAVA] 클래스, 객체, 인스턴스 (0) | 2024.06.25 |
| [JAVA] String 클래스 (0) | 2024.06.21 |