반응형
Overloading이란?
오버로딩은 클래스 내에서 메소드 이름이 같아도 파라미터의 개수나 데이터 형식만 다르면 여러 개를 선언할 수 있는 것을 말한다.
참고로, 생성자도 메소드의 한 종류이므로 오버로딩이 가능하다.
Overloading 코딩
class CarSetting {
//필드
private String color;
private int speed;
CarSetting(){
}
CarSetting(String color) {
this.color = color;
}
CarSetting(String color, int speed) {
this.color = color;
this.speed = speed;
}
public String getColor() {
return color;
}
public int getSpeed() {
return speed;
}
}
파라미터 이름은 같지만 개수는 다른 3개의 생성자를 만들었다.
public class Car {
public static void main(String[] args) {
CarSetting myCar1 = new CarSetting();
CarSetting myCar2 = new CarSetting("Red");
CarSetting myCar3 = new CarSetting("Green", 100);
System.out.println("자동차1의 색상은 " + myCar1.getColor() + "입니다.");
System.out.println("자동차1의 속도는 " + myCar1.getSpeed() + "입니다.");
System.out.println();
System.out.println("자동차2의 색상은 " + myCar2.getColor() + "입니다.");
System.out.println("자동차2의 속도는 " + myCar2.getSpeed() + "입니다.");
System.out.println();
System.out.println("자동차3의 색상은 " + myCar3.getColor() + "입니다.");
System.out.println("자동차3의 속도는 " + myCar3.getSpeed() + "입니다.");
}
}
인스턴스를 할 때도 마찬가지로 셋 다 다른 생성자를 사용해서 만들었다.
출력을 해보면 String 형식에는 null값이 들어가고, int 형식에는 0값이 따로 초기화 하지 않을 시 디폴트 값으로 들어가는 것을 확인할 수 있다.
같은 이름의 파라미터를 3개나 생성했는데 정상적으로 작동하는 이유는 같은 이름의 파라미터는 3개지만 이 3개가 서로 다른 값을 가지고 있기 때문에 가능하다.
이런 것을 오버로딩이라고 한다.
반응형
'프로그래밍언어 > Java' 카테고리의 다른 글
[Java] : 상속 개념과 예시 (0) | 2022.01.16 |
---|---|
[Java] : 인스턴스 변수와 클래스 변수 (0) | 2022.01.15 |
[Java] : 파라미터가 있는 생성자 활용하기 (0) | 2022.01.15 |
[Java] : private와 public에 대해서 (0) | 2022.01.14 |
[Java] : Class와 인스턴스 생성 및 호출 (0) | 2022.01.14 |
댓글