1. BoxTest 예제
코드
package ex04;
class Box {
int width, height, depth;
}
public class BoxTest {
public static void main(String[] args) {
Box b = new Box();
System.out.println("상자의 크기: (" + b.width + "," + b.height + "," + b.depth + ")");
}
}결과

이해하기
기본생성자는 매개 변수가 없는 생성자이다. 개발자가 생성자를 하나도 정의하지 않으면 자바는 기본 생성자를 자동으로 만든다. 이는 생략되어 코드에서는 보이지 않는다.
위 코드에서는 기본으로 생성자가 추가되어서 width와 height, depth가 모두 0으로 초기화 되어있는 것을 확인할 수 있다.
2. 기본 생성자가 추가되지 않는 경우
Box 예제
코드
package ex04;
public class Box02 {
int width, height, depth;
public Box02(int w, int h, int d) {
width = w;
height = h;
depth = d;
}
public static void main(String[] args) {
Box02 b = new Box02(); //오류 발생
System.out.println("상자의 크기: " + b.width + " " + b.height + " " + b.depth);
}
}결과

오류 발생의 원인
Box()라는 기본 생성자가 정의되지 않았다는 오류이다.
개발자가 Box02(int w, int h, int d) 형태의 생성자를 만들었기 때문에 자바는 기본 생성자를 만들지 않았다.
해결방법
기본 생성자 추가하기
매개변수가 없는 생성자를 직접 추가하면 해결됩니다.
public Box02() {
width = 0;
height = 0;
depth = 0;
}객체 생성 시 올바른 생성자 사용하기 기존 코드에서 기본 생성자가 없기 때문에, 매개변수가 있는 생성자를 사용하여 객체를 생성하면 오류를 해결할 수 있습니다.
public static void main(String[] args) {
Box02 b = new Box02(10, 20, 30); // 올바르게 매개변수 전달
System.out.println("상자의 크기: " + b.width + " " + b.height + " " + b.depth);
}Share article