- 객체가 생성될 때 호출되는 특수한 메서드
- 해당 클래스의 인스턴스를 초기화하고 초기 상태 설정하는데 사용
- 메서드와 유사
구조
class MyClass {
// 필드 선언
// 기본 생성자
public MyClass() {
// 초기화 코드
}
// 매개변수가 있는 생성자
public MyClass(parameters) {
// 초기화 코드
}
}
기본 생성자
- 매개변수가 없는 생성자로, 명시적으로 정의하지 않을 경우 자바는 기본 생성자 제공하고 주로 객체를 생성하고 필드를 초기화하는데 사용
매개변수가 있는 생성자
- 하나 이상의 매개변수를 받는 생성자로, 객체를 특정 값으로 초기화하고 생성할 때 사용
쓰이는 상황
- 객체를 생성하고 초기화할 때
- 필요로 하는 초기 상태 설정할 때
문법 및 구조
- 클래스이 이름 동일
- 클래스의 맴버로 선언
- return x
주의할 점
- 이름 대문자로 시작
- 오버로딩을 통해 다양한 초기화 방법 제공 가능
- 명시적으로 생성자 정의 하지않을 시 기본생성자 생성
- 상위클래스 생성자 호출하기 위해 super 사용
// Person 클래스 정의
class Person {
String name; // 문자열 형식의 이름을 나타내는 필드
int age; // 정수 형식의 나이를 나타내는 필드
// 생성자: 이름과 나이를 매개변수로 받아 객체를 초기화하는 메서드
public Person(String name, int age) {
this.name = name; // this 키워드를 사용하여 현재 인스턴스의 필드에 접근
this.age = age;
}
// 정보 출력 메서드
public void displayInfo() {
System.out.println("이름: " + name); // 이름 출력
System.out.println("나이: " + age); // 나이 출력
}
}
// Person 클래스 활용 예제
public class Main {
public static void main(String[] args) {
// 생성자를 사용하여 Person 객체 초기화
Person person1 = new Person("John Doe", 30); // 이름이 "John Doe"이고 나이가 30인 Person 객체 생성
// 정보 출력
person1.displayInfo(); // Person 객체의 정보 출력
}
}