Langauge/Java-basic

[Java] 생성자

강잇 2022. 7. 20. 01:15

생성자란

  • 생성자란 인스턴스 변수들을 초기화하는 역할을 지닌 클래스의 내부 구성 요소로 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;
    }
}