// 두 개의 데이터를 더하는 클래스
public class Add {
// 두 개의 정수를 더해주는 함수
int addInt(int x, int y) {
return x+y;
}
// 두 개의 실수를 더해주는 함수
float addFloat(float x, float y) {
return x+y;
}
// 두 개의 더블을 더해주는 함수
double addDouble(double x, double y) {
return x+y;
}
// 두 개의 문자열을 더해주는 함수
String addSrting(String x, String y) {
return x+y;
}
위와 같이 모두 더하는 기능이지만 각각의 데이터 타입이 달라 새로운 함수를 매 번 만들어야하는 상황이다.
JAVA 특성상 파이썬과 다르게 데이터 타입을 명시해야만 하기 때문이다.
하지만 이는 비효율적이므로
메소드 오버로딩(Method Overloading) 이용하자.
int add(int x, int y) {
return x+y;
}
// 두 개의 실수를 더해주는 함수
float add(float x, float y) {
return x+y;
}
// 두 개의 더블을 더해주는 함수
double add(double x, double y) {
return x+y;
}
// 두 개의 문자열을 더해주는 함수
String add(String x, String y) {
return x+y;
처음 코드와 다른 점은 기능과 모습은 같고 메소드의 이름만 같다는 것이다.
이런 식으로 코딩해도 데이터타입은 다르기 때문에 정상작동해준다.
필수 조건은 여러 함수의 파라미터나,리턴 데이터 타입이 달라야한다는 점이다.
public class AddMain {
public static void main(String[] args) {
// TODO Auto-generated method stub
// 객체 생성
Add a = new Add();
int result = a.add(3, 6);
System.out.println(result);
// 2개의 float 을 더하는 함수를 만들고 싶다.
float result2 = a.add(3.5f, 4.8f);
System.out.println(result2);
// 2개의 double을 더하는 함수를 만들고 싶다.
double result3 = a.add(3.8, 2.9);
System.out.println(result3);
// 2개의 double을 더하는 함수를 만들고 싶다.
String result4 = a.add("안녕? " , "하세요우.");
System.out.println(result4);
}
}
정상적으로 값을 도출해준다.
이처럼 각각의 함수의 데이터타입이 명확하게 다를 시에
메소드의 이름이 같아도 정상작동되게 하는 것을
메소드 오버로딩(Method Overloading)이라 한다.
'JAVA' 카테고리의 다른 글
JAVA - 접근 제어자와 getter, setter 함수 (0) | 2022.07.04 |
---|---|
JAVA - 클래스의 멤버 변수에 데이터를 셋팅하는 방법 / 다른 패키지에 접근하기(접근 제어자) (0) | 2022.07.04 |
JAVA - 생성자 사용법과 생성자를 메소드 오버로딩을 하는 이유는? (0) | 2022.07.01 |
JAVA - 멤버변수와 this (0) | 2022.07.01 |
JAVA - 클래스와 객체(인스턴스) (0) | 2022.07.01 |
댓글