목차
Method Overloading 정의
Method Overloading 예제
Method Overloading 정의
오버로딩 (= 동일 메서드명으로 여러 메서드 정의) 가능 경우.
① 매개변수 개수 가 다른 경우.
② 매개변수 타입 이 다른 경우.
PS.
단지, 매개변수명만 다른 경우엔 메서드 오버로딩 불가.
cf. C++ Overloading과 유사.
[예제]
int myMethod(int x)
// 개수 같아도 자료형 다른 경우, 오버로딩 가능 O.
float myMethod(float x)
// 자료형 같지만 개수 다른 경우, 오버로딩 가능 O.
int myMethod(int x, int y )
// 자료형과 개수 모두 다른 경우, 오버로딩 가능 O.
double myMethod(double x, double y )
// 단지, 변수명만 다른 경우, 오버로딩 가능 X
int myMethod(int y) // 에러 유발.
Method Overloading 예제
[오버로딩 사용 X 경우] - int형과 double형 메서드를 각각 정의.
public class Hz {
static int plusInt(int x, int y) {
return x + y;
}
static double plusDouble(double x, double y) {
return x + y;
}
public static void main(String[] args) {
int a = plusInt(3, 4);
double b = plusDouble(2.41, 3.14);
System.out.println("int: " + a);
System.out.println("double: " + b);
}
}
결과값:
int: 7
double: 5.550000000000001
[오버로딩 사용 O 경우 ★] - int형과 double형 메서드를 오버로딩.
※ 권장 방식.
public class Hz {
static int plus(int x, int y) {
return x + y;
}
static double plus(double x, double y) {
return x + y;
}
public static void main(String[] args) {
int a = plus(3, 4);
double b = plus(2.41, 3.14);
System.out.println("int: " + a);
System.out.println("double: " + b);
}
}
결과값:
int: 7
double: 5.550000000000001
주소 복사
랜덤 이동