- 자바에서는 객체의 생성과 동시에 인스턴스 변수를 원하는 값으로 초기화 할 수 있는 생성자라는 메소드를 제공한다.
- 생성자의 이름은 클래스 이름과 동일하여야 한다.
ex ) class Car { } -> Car() { this.- }
[ 생성자 선언방법 ]
// 매개변수 없는 생성자 : 특별히 초기화 할 필요가 없을 경우에 사용.
class MyClass {
MyClass() {
}
}
// 매개변수 없는 생성자 : 원하는 값으로 초기화 하고자 할때 사용.
class MyClass {
MyClass(int param1, String param2) {
}
}
- 위와 같이 생성자 중에는 매개변수를 전달받아 인스턴스 변수를 초기화 하는 생성자도 선언이 가능하다.
[ 생성자의 특징 ]
- 리턴 타입 없음 : 생성자는 리턴 타입을 명시하지 않는다.
- 자동 호출 : 객체를 생성할 때 'new' 키워드와 함께 자동으로 호출된다.
- 기본 생성자 생 : 생성자를 명시적으로 정의하지 않으면 컴파일러가 자동으로 기본 생성자를 생성한다.
[ Car 클래스의 생성자를 선언하는 예제 ]
Car(String name, int year, String color, int maxSpeed) {
this.name = name;
this.year = year;
this.color = color;
this.maxSpeed = maxSpeed;
}
- 위에 예제처럼 클래스의 생성자는 어떠한 리턴값도 명시하지 않음을 알 수 있다.
[ 생성자 호출 ]
- 자바에서는 new 키워드를 사용하여 객체 생성 시, 자동으로 생성자가 호출된다.
class Car {
private String name;
private int year;
private String color;
private int maxSpeed;
// 생성자 함수
Car(String name, int year, String color, int maxSpeed) {
this.name = name;
this.year = year;
this.color = color;
this.maxSpeed = maxSpeed;
}
public String getModel() {
return this.year + "년식" + this.name + " " + this.color;
}
}
public class Method {
public static void main(String[] args) {
Car myCar = new Car("아반떼", 2016, "흰색" 200); // 생성자 호출
System.out.println(myCar.getModel()); // 생성자에 의해 초기화 되었는지를 확인.
}
}
[ 기본 생성자(Default Constructor) ]
- 모든 클래스에는 하나 이상의 생성자가 정의되어야 합니다.
- 생성자를 명시적으로 정의하지 않으면 컴파일러가 기본 생성자를 자동으로 생성합니다.
- 기본 생성자는 매개변수가 없고 아무런 명령어도 포함되지 않습니다.
'#Java' 카테고리의 다른 글
| 다차원 배열 (0) | 2024.04.05 |
|---|---|
| 배열(Array) (0) | 2024.04.05 |
| Getter & Setter (0) | 2024.04.04 |
| 재귀함수(Recusion Function) (0) | 2024.04.04 |
| Java 클래스(Class) (0) | 2024.04.03 |