오버로딩
이전 부분에서, 우리는 Person 클래스에 세 개의 생성자가 있었기 때문에 오버로딩을 이미 사용했습니다. 이것은 간단한 예시입니다. 오버로딩은 클래스가 동일한 이름을 가진 둘 이상의 메서드를 가질 수 있도록 하는 기능입니다. 이를 통해 우리는 다양한 상황을 처리할 수 있으며 혼란을 겪지 않을 수 있습니다. 일반적으로 오버로딩을 달성하는 세 가지 방법이 있습니다.
- 서로 다른 매개변수 개수
- 서로 다른 매개변수 유형
- 서로 다른 유형의 매개변수 순서
예시:
/home/labex/project/overloadingTest.java 파일에 다음 코드를 작성하십시오.
public class overloadingTest{
public static void main(String[] args){
overloadingTest test = new overloadingTest();
System.out.println("add(10,20)= " + test.add(10,20));
System.out.println("add(10,20,30)= " + test.add(10,20,30));
System.out.println("add(5.5, 10.5)= " + test.add(5.5f, 10.5f));
test.printInfo(1 , "an error!");
test.printInfo("another error!" , 2);
}
// this method has two int params, returns an integer
int add(int a, int b){
return a+b;
}
// this method has three int params, returns an integer
int add(int a, int b, int c){
return a+b+c;
}
// this method has two float params, returns a float number
float add(float a, float b){
return a+b;
}
// this method has one string param and one int param, returns nothing
void printInfo(String str, int code){
System.out.println("Code: " + code + "\nMessage: " + str);
}
// this method has one int param and one string param, returns nothing
void printInfo(int code, String str){
System.out.println("Code: " + code + "\nMessage: " + str);
}
}
출력:
다음 명령을 사용하여 overloadingTest.java 파일을 실행하십시오.
javac /home/labex/project/overloadingTest.java
java overloadingTest
출력을 확인하십시오.
add(10,20)= 30
add(10,20,30)= 60
add(5.5, 10.5)= 16.0
Code: 1
Message: an error!
Code: 2
Message: another error!