: 매개변수의 유형과 개수가 다르게 하여 같은 이름의 메소드를 여러 개 가질 수 있게 하는 기술이다.
메소드 오버로딩 방법
메소드의 이름은 같지만 매개변수 개수나 타입이 달라야 한다.
class MyClass2{
public int plus(int x, int y){
return x+y;
}
public int plus(int x, int y, int z){
return x + y + z;
}
public String plus(String x, String y){
return x + y;
}
}
변수명은 다르지만, 매개변수의 타입과 개수가 동일한 메소드를 또 정의 할 수 없다.
public int plus(int i, int f){
return i + f;
}
오버로딩은 메소드의 매개변수 타입이나 개수가 달라야 한다는 점!!
메소드 오버로딩 이용
public MethodOverloadExam{
public static void main(String[] args){
MyClass2 m = new MyClass2();
System.out.println(m.plus(5, 10));
System.out.println(m.plus(5, 10, 15));
System.out.println(m.plus("hello", " world"));
}
}
: 생성자의 매개변수의 유형과 개수가 다르게 하여 같은 이름의 생성자를 여러개 가질 수 있다.
생성자 오버로딩 방법
public class Car{
String name;
int number;
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()
public Car(){
this.name = "경찰차";
this.number = 0;
}
public Car(){
this("경찰차", 0);
}
자기 자신의 생성자를 호출함으로써 비슷한 코드가 중복되서 나오는 것을 방지할 수 있다.