본문 바로가기
Java

[자바 입문] 생성자 오버로딩과 this

by sangyunpark 2023. 8. 14.

생성자의 매개변수의 유형과 개수가 다르게 하여 같은 이름의 생성자를 여러 개 가질 수 있다.

생성자도 메소드와 마찬가지로 여러개를 선언할 수 있다.

매개변수의 수와 타입이 다르다면 여러개의 생성자를 선언할 수 있다.

public class Car{

    int number;
    String name;
    
    public Car(){
    	
    }
    
    public Car(String name){
    	this.name = name;
    }
    
    public Car(String name, int number){
    	this.name = name;
        this.number = number;
    }
}

 

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

public class CarExam4{
	public static void main(String args[]){
    	Car c1 = new Car();
        Car c2 = new Car("소방차");
        Car c3 = new Car("구급차, 1234);
    }
}

 

자기 생성자 호출하는 this()

기본 생성자를 호출하였을 때 name을 "이름 없음", 숫자 0으로 초기화 하기

public Car(){
    this.number = 0;
    this.name = "이름없음";
}

위처럼 작성했을 경우 코드의 중복이 일어난다.

자신이 가지고 있는 다른 생성자를 이용할 수 있다.

public Car(){
	this("이름없음",0);
}

this괄호 열고로 시작하면 자신의 생성자를 호출하는 것이다.

자기 자신의 생성자를 호출함으로써 비슷한 코드가 중복되서 나오는 것을 방지할 수 있다.

 

https://school.programmers.co.kr/learn/courses/5/lessons/369

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

public class Car {
    String name;
    int number;
    
    Car(String name, int number) {
        this.name = name;
        this.number = number;
    }
    
    public Car(){
        this("이름없음",0);
    }
    
    public Car(String name){
        this(name, 0);
    }
}

 

'Java' 카테고리의 다른 글

[자바 입문] 상속  (0) 2023.08.16
[자바 입문] 패키지  (0) 2023.08.16
[자바 입문] 메소드 오버로딩  (0) 2023.08.14
[자바 입문] this  (0) 2023.08.14
[자바 입문] 생성자  (0) 2023.08.14