자바의 정석 - 생성자, 기본 생성자

Yohan·2023년 11월 20일
0

생성자

  • 인스턴스가 생성될 때 마다 호출되는 '인스턴스 초기화 메서드'

	Time t = new Time(); // 객체 생성
    t.hour = 12; // 초기화
    t.minute = 34;
    t.second = 56;
     
    // 위와 같은 방법은 번거로움
    // 그래서 생성자가 필요
    
    Time t = new Time(12, 34, 56); // 생성자로 호출
  • 생성자 이름이 클래스 이름과 같아야 한다.
  • 리턴값이 없다. (void 안붙임)
  • 모든 클래스는 반드시 생성자를 가져야 한다.

	class Card {
    	
        Card() { // 매개변수 없는 생성자
        	// 인스턴스 초기화
        }
        
        Card(String kind, int number) { // 매개변수 있는 생성자
        	// 인스턴스 초기화
        }
    }

기본 생성자

  • 매개변수가 없는 생성자
  • 생성자가 하나도 없을 때만, 컴파일러가 기본 생성자 자동 추가
    class Data_1 {
        int value;
        // Data_1() {} // 컴파일러가 기본 생성자 자동 추가
    }

    class Data_2 {
        int value;

        // Data_2() {} // 기본 생성자 직접 추가 해주어야 오류 사라짐
        Data_2(int x) { // 매개 변수가 있는 생성자
            value = x;
        }
    }

    class Ex1 {
        public static void main(String[] args) {
            Data_1 d1 = new Data_1();
            Data_2 d2 = new Data_2(); // compile error 발생
            // The constructor Data_2() is underfined
        }
    }

매개변수가 있는 생성자

class Car {

    String color;
    String gearType;
    int door;

    Car() {} // 기본 생성자
    Car(String c, String g, int d) { // 매개변수가 있는 생성자
        color = c;
        gearType = g;
        door = d;
    }
}
	// 객체 초기화
	Car c = new("White", "auto", 4);
profile
백엔드 개발자

0개의 댓글