이름만 같고 다른 함수 -> 다른 함수
구분 -> 매개변수(parameter)로 함
왜 필요할까?
예를 들어 background image에 색칠한다고 생각하면 위치가 필요없지만 character image색칠을 생각해보면 같은 색을 색칠하더라도 위치가 필요함.
public static void main(String[] args) {
func();
func('A');
func(33);
func('B', 88);
func(77, 'C');
//가변인수
int s = sum(1, 2, 3);
System.out.println("합계 : " + s);
s = sum(100,90,80,100,70);
System.out.println("합계 : " + s);
}
static void func() {
System.out.println("func() 호출");
}
static void func(char c) { //이름은 같지만 매개변수로 다른 함수
System.out.println("func(char c) 호출");
}
static void func(int i) { //매개변수의 자료형이 다르므로 다른 함수
System.out.println("func(int i) 호출");
}
static void func(char c , int i) { //매개변수의 갯수가 다르므로 다른 함수
System.out.println("func(char c, int i) 호출");
}
static void func(int i , char c) { //위 함수와 매개변수의 위치가 다르므로 다른 함수
System.out.println("func(int i, char c) 호출");
}
//안되는 버전
/*
static void func(int ii , char cc) { //파라미터 이름은 다르지만 자료형(위치)이 같으므로 안됨
System.out.println("func(int i, char c) 호출");
}
static int func(){ //return값으로 구분 불가능
*/
//가변인수
static int sum(int...number) {
int s = 0;
for(int i=0; i<number.length; i++) {
s = s+number[i];
}
return s;
}