[Java] 10.3.1. 기본생성자

김주희's avatar
Feb 26, 2025
[Java] 10.3.1. 기본생성자

1. 생성자

  1. 객체를 생성과 동시에 초기화하는 메서드
  1. 생성자 이름 = 클래스 이름

1. BurgerTest 예제

package ex04; class Burger { private String name; private int price; // 모든 상태가 변경되는 것은 아님(final) - 내가 정하는 것 // 상태 확인 메서드(2개 -> 상태가 2개니까) public String getName() { return name; } public int getPrice() { return price; } // 생성자 - 사용법이 메서드와 같다 public Burger(String n, int p) { // String n, int p은 stack에 생김 - 메서드 종료(stack사라짐)될 때 사라짐 name = n; // heap에다가 데이터를 옮기는 방법 price = p; } } public class BurgerTest { public static void main(String[] args) { Burger b1 = new Burger("기본버거", 2000); //b1.name = "기본버거"; // 문법적으로는 맞지만 객체지향 프로그램X - 행위를 통해서 상태 변경 //b1.price = 2000; System.out.println(b1.getName()); System.out.println(b1.getPrice()); } }
notion image
 
 

2. Television 예제

package ex04; class Television { private int channel; private int volume; private boolean onOff; Television(int c, int v, boolean o) { channel = c; volume = v; onOff = o; } void print() { System.out.println("채널은 " + channel + "이고 볼륨은 " + volume + "입니다."); } } public class TelevisionTest { public static void main(String[] args) { Television myTv = new Television(7, 10, true); myTv.print(); Television yourTv = new Television(11, 20, true); yourTv.print(); } }
notion image
 

2. 기본 생성자 (디폴트 생성자, default contstructor)

  1. 기본 생성자 = 매개 변수가 없는 생성자
  1. 개발자가 생성자를 하나도 정의하지 않으면 자바 컴파일러는 기본 생성자를 자동으로 만든다.
  1. 기본 생성자는 자동으로 모든 멤버의 변수를 기본값으로 초기화한다.
      • 수치형 변수(int 등) = 0
      • 참조형 변수 = null
      • 부울형 변수 = false
 
package ex04; class Box { int width; int height; int 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
 
  1. (cf. 2-2) 개발자가 생성자를 하나라도 선언하면, 컴파일러는 기본 생성자를 생성하지 않는다.
    1. → 컴파일러가 개발자의 의도를 훼손하지 않기 위해서 (e.g. 박스 생성시 반드시 박스의 크기를 지정해야 한다.)
notion image
Share article

jay0628