1. 생성자(constructor): 인스턴스가 생성될 때 호출되는 인스턴스 변수 초기화 메서드
1) 클래스 내에 선언 됨
2) 메서드와 유사한 구조이지만 리턴값이 없음
(생성자도 메서드이기 때문에 void를 붙여야 하지만 모든 생성자가 리턴값이 없으므로 void를 생략할 수 있게 한 것)
3) 생성자명은 클래스명과 같아야 함
class Card { // 클래스명과 생성자명은 같아야 함
...
Card() { // 매개변수 없는 생성자
// 인스턴스 초기화 작업
}
Card(String kind, int number) { // 매개변수 있는 생성자
// 인스턴스 초기화 작업
}
}
2. 기본 생성자(default constructor): 매개변수가 없는 생성자로, 클래스 내에 생성자가 존재하지 않을 경우 컴파일러가 자동 추가해줌
class Data_1 { // 클래스 내에 생성자가 존재하지 않기 때문에 컴파일러가 자동으로 기본 생성자인 Data_1(){}을 추가하여 컴파일
int value;
}
class Data_2 { // 클래스 내에 매개변수가 있는 생성자가 존재하기 때문에 기본 생성자를 추가해야 에러가 발생하지 않음
int value;
Data_2(int x) { // 매개변수가 있는 생성자
value = x;
}
}
class Ex6_11 {
public static void main(String[] args) {
Data_1 d1 = new Data_1();
Data_2 d2 = new Data_2(); // compile error: cannot resolve symbol symbol : constructor Data_2()...
}
}
3. 매개변수가 있는 생성자: 인스턴스마다 각각 다른 값으로 초기화되어야 하는 경우 매개변수를 선언하여 호출 시 값을 넘겨받아 인스턴스 초기화 작업에 사용
class Car {
// 인스턴스 변수 선언
String color;
String gearType;
int door;
// 기본 생성자
Car() {
{
// 매개변수가 있는 생성자
Car(String c, String g, int d) {
color = c;
gearType = g;
door = d;
}
}
class Car2{
public static void main(String[] args) {
Car c = new Car("white", "auto", 4);
}
}
4. 생성자 간 호출
'Java' 카테고리의 다른 글
Java 변수의 초기화 (0) | 2022.10.10 |
---|---|
Java 생성자 간 호출 this()와 객체 자신을 가리키는 참조변수 this (0) | 2022.10.09 |
Java 메서드 오버로딩(method overloading) (0) | 2022.10.09 |
Java static 메서드와 인스턴스 메서드 (0) | 2022.10.04 |
Java 기본형 매개변수, 참조형 매개변수 (0) | 2022.10.04 |