public class Circle {
public Circle() {...} // 매개 변수 없는 생성자
public Circle(int r, String n) {...} // 2개의 매개 변수를 가진 생성자
}
Circle pizza = new Circle(10, "자바피자"); // 생성자 Circle(int r, String n)호출
Circle donut = new Circle(); // 생성자 Circle() 호출
public void Circle() {...} // 오류. void도 사용 안 됨
public class Book { String title; String author;
public Book(String t) { // 생성자
title = t; author = "작자미상";
}
public Book(String t, String a) { // 생성자 (매개변수1, 매개변수2)
title = t; author = a;
}
public static void main(String [] args) {
Book littlePrince = new Book("어린왕자", "생텍쥐페리");
Book loveStory = new Book("춘향전");
System.out.println(littlePrince.title + " " + littlePrince.author);
System.out.println(loveStory.title + " " + loveStory.author);
}
}
어린왕자, 생텍쥐페리춘향전, 작자미상
기본 생성자(default constructor)매개 변수 없고, 아무 작업 없이 단순 리턴하는 생성자
class Circle {
public Circle() { } // 기본 생성자 }
디폴트 생성자라고도 불림
클래스에 생성자가 하나도 선언되어 있지 않을 때, 컴파일러에 의해 기본 생성자 자동 생성
public class Circle {
int radius = 0;
void set(int r) {
radius = r;
}
double getArea() {
return 3.14 * radius * radius;
}
//public Circle() {...} 식의 기본 생성자가 없음.
}
public static void main(String args[]) {
Circle pizza = new Circle();
System.out.println(pizza.set(5));
}
클래스에 생성자가 선언되어 있는 경우 컴파일러는 기본 생성자를 자동으로 생성하지 않는다