package ch02_overloading;
/*
* 메서드 오버로딩 ( method overloading )
* → class 안에 같은 이름의 메서드를 여러개 정의.
* 매개변수 갯수, 타입만 다르면 하나의 이름으로 여러개의 메서드를 정의가능.
* → 반환타입은 오버로딩 조건에 해당하지 않음.
*/
class Add{
void addInt(int a, int b) {
System.out.println("- addInt(int a, int b) -");
int sum = a + b;
resultInt(a, b, sum);
}
void addDouble(double a, double b) {
System.out.println("- addDouble(double a, double b) -");
double sum = a + b;
resultDouble(a, b, sum);
}
void resultInt(int a, int b, int sum) {
System.out.println(a + " + " + b + " = " + sum);
}
void resultDouble(double a, double b, double sum) {
System.out.println(a + " + " + b + " = " + sum);
}
// 기능은 유사한데 자료형만 다를 경우, 동일한 method 이름으로 만들자.
void addData(int a, int b) {
System.out.println("- addData(int a, int b) -");
int sum = a + b;
result(a, b, sum);
}
// int addData(int a, int b) {}
void addData(double a, double b) {
System.out.println("- addData(double a, double b) -");
double sum = a + b;
result(a, b, sum);
}
void result(int a, int b, int sum) {
System.out.println(a + " + " + b + " = " + sum);
}
void result(double a, double b, double sum) {
System.out.println(a + " + " + b + " = " + sum);
}
}
public class ExOverloading {
public static void main(String[] args) {
Add testA = new Add();
testA.addInt(12, 35);
testA.addDouble(3.3, 4.4);
System.out.println();
testA.addData(12, 35);
testA.addData(3.3, 4.4);
}
}
- Max & ShowArray (DataManger에서 테스트)
package ch02_overloading;
public class Max {
/*
* Max class 를 정의하고, DataManager class 에서 테스트 하세요
* - 두개의 값을 넘겨받고, 두수 중에서 큰수를 찾아서 반환하는 기능이 있습니다
* > 정수, 실수 타입 각각의 메서드
*/
// 비
int findMax(int a, int b) {
if(a > b) return a;
else if(b > a) return b;
else return 0;
}
double findMax(double a, double b) {
if(a > b) return a;
else if(b > a) return b;
else return 0;
}
}
--------------------------------------------------------------------------------
package ch02_overloading;
public class ShowArray {
/*
* ShowArray class 를 정의하고, DataManager class 에서 테스트 하세요
* - 배열 변수 값을 넘겨받아서, 해당 배열의 값을 모두 출력하는 기능을 가지고 있습니다
* > int, char 타입 배열의 값을 각각 출력하는 메서드
*/
void print(int[] arr) {
for(int i=0;i<arr.length;i++) {
System.out.print(arr[i] + " ");
}
System.out.println();
}
void print(char[] arr) {
for(int i=0;i<arr.length;i++) {
System.out.print(arr[i] + " ");
}
System.out.println();
}
}
--------------------------------------------------------------------------------
package ch02_overloading;
public class DataManager {
public static void main(String[] args) {
Max max = new Max();
System.out.println(max.findMax(24, 32));
System.out.println(max.findMax(2.2, 2.3));
System.out.println();
ShowArray pr = new ShowArray();
int[] iarr = {124, 42, 5525};
char[] carr = {'h', 'o', 'm', 'e'};
pr.print(iarr);
pr.print(carr);
}
}