package kr.co.kihd.staticnonstatic;
class A {
int data1 = 10;
int data2 = 20;
}
public class AccumulatorTest {
public static void main(String[] args) {
Accumulator accu = new Accumulator();
int iResult = accu.add(10, 50);
System.out.println("iResult : "+iResult);
//접미사 반드시 붙이도록 함.
long lResult = accu.add(10, 50323L);
System.out.println("lResult : "+lResult);
lResult = accu.add(50423L, 10);
System.out.println("lResult : "+lResult);
lResult = accu.add(50423L, 10L);
System.out.println("lResult : "+lResult);
double dResult = accu.add(50.2, 10.3);
System.out.println("dResult : "+dResult);
lResult = accu.add(new int[] {1,2,3,4,5});
System.out.println("lResult : "+lResult);
iResult = accu.add(new A());
System.out.println("iResult : "+iResult);
int result1 = accu.divide(10, 20);
double result2 = accu.divide(10.0, 4.0);
System.out.print(result1+result2);
}
}
package kr.co.kihd.staticnonstatic;
// 메서드 오버로딩(method overloading) : 한 클래스내에 같은 이름을 가지는
// 메서드를 여러 개 정의하는 것이다.
public class Accumulator {
//add라는 메서드명으로 오버로딩함
public int add(int x, int y) {
System.out.println("add(int x, int y)");
return x + y;
}
// public int add(int a, int b) {
// System.out.println("add(int x, int y)");
// return a + b;
// }
public long add(int x, long y) {
System.out.println("add(int x, long y)");
return x + y;
}
public long add(long x, int y) {
System.out.println("add(long x, int y)");
return x + y;
}
public long add(long x, long y) {
System.out.println("add(long x, long y)");
return x + y;
}
public double add(double x, double y) {
System.out.println("add(long x, long y)");
return x + y;
}
//참조형 변수를 받아서 오버로딩하는 케이스
public long add(int[] arr) {
System.out.println("add(int[] arr) : "
+ "배열의 주소를 받아서 그 값의 총합을 구해서 리턴하고 있는 메서드");
long sum = 0L;
for(int i : arr) {
sum += i;
}
return sum;
}
//클래스를 매개변수로 받아서 오버로딩하는 케이스
public int add(A a) {
System.out.println("add(A a)");
return a.data1 + a.data2;
}
public int divide(int amount, int number) {
return amount / number;
}
//실수형 오버로딩
public double divide(double amount, double number) {
return amount / number;
}
}