[Java] 오버로딩

Hyo Kyun Lee·2022년 1월 30일
0

Java

목록 보기
16/66

1. 메소드 오버로딩

동일한 이름의 메소드를 여러 개 정의하는 것을 의미한다.

매개변수 개수나 type이 조금씩 다르지만, 비슷한 기능을 하는 메소드가 여러개 존재할 수 있는데, 이러한 메소드가 여러개 존재한다면 명확한 구분 및 사용이 어려울 수 있다.

public calss Car{
	public int plus(int x, int y){
    	return x + y;
    }
    
    public int plus(int x, int y, int z){
    	return x + y + z;
    }
}

이와 같이 동일 이름으로 메소드를 여러개 정의할 수 있다.

이 과정을 메소드 오버로딩이라 일컫는다.

2. 생성자 오버로딩

메소드와 마찬가지로, 동일한 이름의 생성자를 여러개 생성하는 것을 생성자 오버로딩이라 한다.

public class Car{
	public int Car(int number){
    	return number;
    }
    
    public void Car(){
    }
}

위 기본생성자를 활용하는 경우에도, 내부적으로 field 설정을 할 수 있다.

public class Car{
	int number;
    String name;
    
	public Car(){
    	this.name = "Hello";
        this.number = 0;
    }
}

※ this는 자신의 객체를 명확히 가르키는데 혹은 불러올때(호출할때) 활용하며, 이를 사용하여 위 코드를 고친다면 아래와 같다.

public class Car(){
	int number;
    String name;
    
    public Car(){
    	this("Hello", 0);
    } //기본 생성자 내에서 오버로딩한 생성자를 다시 호출하게 됨
    
    public Car(String name, int number){
    	this.number = number;
        this.name = name;
    }
}

0개의 댓글