JAVA - 생성자 오버로딩

Seongjin Jo·2023년 1월 1일
0

JAVA

목록 보기
1/5

✔ 생성자 오버로딩 이란?


메서드도 변수와 마찬가지로 같은 클래스 내에서 서로 구별될 수 있어야 하기 때문에 각기 다른 이름을 가져야한다. 그러나 자바에서는 한 클래스 내에 이미 사용하려는 이름과 같은 이름을 가진 메서드가 있더라도 매개변수의 개수 또는 타입이 다르면, 같은 이름을 사용해서 메서드를 정의할 수 있다. 이처럼, 한 클래스 내에 같은 이름의 메서드를 여러 개 정의하는 것을 메서드 오버로딩이라고 한다.

생성자 오버로딩 조건 💥💥💥

같은 이름의 메서드를 정의한다고 해서 무조건 오버로딩이 되는 것은 아니다.
오버로딩이 성립하기 위해서는 다음 조건을 만족해야한다.

    1. 메서드 이름이 같아야 한다.
    1. 매개변수의 개수 또는 타입이 달라야 한다.

비록 메서드의 이름이 같다 하더라도 매개변수가 다르면 서로 구별될 수 있기 때문에 오버로딩이 가능한 것이다. 반환타입은 오버로딩을 구현하는데 아무런 영향을 주지 못한다.

오버로딩된 생성자 이용하기

예시)

public class Post{
        String title ;
        int content ;

        public Post(){
        }

        public Post(String title){
            this.title = title;
        }

        public Post(String title, String content) {
            this.title = title;
            this.content  = content ;
        }
    }
 public class PostExam{
        public static void main(String args[]){
            Post post1 = new Post ();
            Post post2 = new Post ("제목");
            Post post3 = new Post ("제목","내용");
        }
    }

자기 생성자 호출 this()

public Post(){
        this.title = "제목1";  //제목 -> "제목1"로 초기화
        this.content = "내용1"; //내용 ->  "내용1"로 초기화
    }

기본 생성자를 호출 했을 때 this로 초기화 할 수 있다.

public Post(){
        this("제목1","내용1");  /
    }

this괄호 열고 시작하면 자신의 생성자 호출이 가능하다.
자기 자신의 생성자를 호출함으로써 비슷한 코드의 중복을 방지할 수 있다.

0개의 댓글