[JAVA] 38. 클래스와 객체 (3)기본 생성자 예제

서회정's avatar
Feb 12, 2025
[JAVA] 38. 클래스와 객체 (3)기본 생성자 예제

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 + ")"); } }

결과

notion image

이해하기

💡
기본생성자는 매개 변수가 없는 생성자이다. 개발자가 생성자를 하나도 정의하지 않으면 자바는 기본 생성자를 자동으로 만든다. 이는 생략되어 코드에서는 보이지 않는다.

위 코드에서는 기본으로 생성자가 추가되어서 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); } }

결과

notion image

오류 발생의 원인

💡
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

clubnerdy