자바 : 생성자

임지원·2023년 10월 26일

1. 생성자란?

인스턴스 초기화 메서드

객체를 생성하기 위해 new 클래스(); 할 때 new와 함께 나오는 메서드클래스()가 생성자이다.
하는 일은 인스턴스 변수 초기화

생성자 선언방법

클래스{
	클래스(){
    }
}

생성자는 클래스 이름과 동일하게 만들어 주어야한다.

클래스에서 생성자를 작성하지 않으면 기본 생성자를 컴파일러가 기본적으로 생성해준다.

 

2. 생성자 오버로딩

class person{
    int age;
    String name;

    person(int age){
        this.age = age;
    }
    person(int age, String name){
        this.age = age;
        this.name = name;
    }

}

위와 같이 생성자를 두 개 이상 구현하는 것을 생성자 오버로딩이라고 한다.

person p1 = new person(10);
person p2 = new person(10, "james");

그러면 메인 함수에서 객체를 생성할 때 다양한 방법으로 만들 수 있다.

 

3. 생성자 this()

person p1 = new person(10);
person p2 = new person(10, "james");

이렇게 생성했을 때 p2에는 age와 name이 들어갔지만, p1의 경우 name이 null이다.
이렇게 이름이 정해지지 않은 경우 name에 "NoName"을 넣어주고 싶을 때

class person{
    int age;
    String name;

    person(int age){
        this(age,"NoName");
    }
    person(int age, String name){
        this.age = age;
        this.name = name;
    }

}

person(int age){}생성자에서 this()를 이용해 person(int age, String name)에게 전달해주어 name도 초기화해주고 중복도 제거할 수 있다.

profile
백엔드 새싹

0개의 댓글