JAVA_overload

박예린·2022년 12월 26일
0

Java

목록 보기
14/23

Overload : 함수명은 같고 매개변수(parameter)의 갯수나 자료형이 다른 함수

이름만 같고 다른 함수 -> 다른 함수
구분 -> 매개변수(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;
	}
profile
개발자를 꿈꾸는 귀여운 나

0개의 댓글