생성자란
- 생성자란 인스턴스 변수들을 초기화하는 역할을 지닌 클래스의 내부 구성 요소로 new 키워드와 함께 쓰여 인스턴스를 생성한다.
- 생성자의 이름은 반드시 클래스명과 동일해야 한다.
- 생성자는 리턴 타입이 존재하지 않는다.
기본 생성자와 매개변수가 있는 생성자
기본 생성자 : 매개변수가 없는 생성자
- 기본 생성자란 매개변수가 없는 생성자를 의미함.
- 모든 클래스는 생성자를 포함하고 있어야 한다. 따라서 클래스 내부에 생성자가 없을 경우 컴파일러가 자동으로 추가함.
// 기본 생성자 구조
클래스명(){
...
}
class Person() {
public Person() {} // 기본 생성자
}
class Person() {
...
// public Person() {} 클래스 내부에 생성자가 하나라도 없으면 컴파일러가 자동으로 추가
}
매개변수가 있는 생성자
- 생성자도 오버로딩을 통해 여러 개의 생성자를 정의할 수 있다.
- 매개변수가 있는 생성자는 인스턴스 생성 시에 값을 받아 인스턴스를 초기화하는 데 사용된다.
- 고유한 특성을 가진 인스턴스를 계속 생성해야 할 경우 각기 다른 값을 가지고 초기화할 수 있어 매우 유용하다.
- 생성자를 정의 시 당연히 생성자가 존재하므로 컴파일러는 기본 생성자를 따로 추가하지 않음.
// 매개변수가 있는 생성자 구조
클래스명(매개변수){}
public class Main {
public static void main(String[] args) {
// 인스턴스 생성과 동시에 초기화
Person person1 = new Person("홍길동", 15, "남자(Female)");
}
}
class Person {
String name;
int age;
String gender;
public Person(String name, int age, String gender) {
this.name = name;
this.age = age;
this.gender = gender;
}
}