Beny's Study

22. 메소드 오버로딩 본문

[JAVA]/07. 객체지향

22. 메소드 오버로딩

76beny 2022. 4. 10. 22:22

 

메소드 오버로딩 규칙

package com.kh.ex07.overloading;

//메소드 오버로딩
//같은 메소드(함수) 명이면서 다른 타입을 인자로 받아 같은 기능으로 동작시킬하게끔 설계할때 사용됨


//메소드 오버로딩 규칙( 가능한 경우)
//1. 메소드의 이름이 같아야한다.
//2. 매개변수의 갯수가 달라야함
//3. 매개변수의 Type(종류)가 달라야함
//4. 매개변수의 Type 순서가 달라야함
//5. 반환형은 무관하다. (return 을 하든 안하든 된다.)
//6. 변수명은 무관하다.(type으로만 판단함!)
public class Overloading {

	//경우1 가능
	void myMethod(int arg) {
		System.out.println(arg);
		
	}
	//경우2 가능
	int myMethod(int arg1, int arg2) {
		System.out.println(arg1 + arg2);
		return arg1 + arg2;
	}
	//경우3 
	int myMethod(String arg) {
		System.out.println(arg);
		return arg.length();
	}
	
	
	//오버로딩 실행
	public static void main(String[] args) {
		
		//대표적인 오버로딩 함수
		System.out.println(12);//숫자도 받고
		System.out.println('a');//문자도받고
		System.out.println(12.12);//소수도받고
		System.out.println("!!!");//문자열도받고
		//만약 System.out.println();가 아니라면...
		//System.out.printlnInt();
		//System.out.printlnChar();
		//처럼 타입을 하나하나다 적어줘야 함.........^^
		
		
		//작성 오버로딩 함수
		Overloading test = new Overloading();
		
	
	}
}

 

 

팁문제

//아래 기준 메소드를 먼저 써놓고
//1번부터 7번까지의 메소드를 차례로 써나간다고 할 때
//오버로딩이 적용되는 것은 무엇일까?
//1,2,5,6,7....?
//기준 	public void method1(int i){}
//=========================
//1	public void method1(String str){}// 성립, 타입달라서
//
//2	public void method1(int i, String str){}// 성립, 매개변수 개수 달라서
//
//3 public void method1(int num){}//  안됨, 타입이랑 개수 둘다 동일해서..?
//
//4 public String method1(int point){}// 안됨 , 반환 자료형이 달라서 불가능
//
//5	public void method1(int i, int k){}// 성립, 매개변수 개수 달라서
//
//6 public void method1(int num, String string){}//성립, 매개변수 개수 달라서 안됨
//
//7	public void method1(String str, int i){}// 성립, 매개변수 개수가 달라서 안됨


//정답
//아래 기준 메소드를 먼저 써놓고
//1번부터 7번까지의 메소드를 차례로 써나간다고 할 때
//오버로딩이 적용되는 것은 무엇일까?
//
//기준 	public void method1(int i){}
//=========================
//1	public void method1(String str){}
//		매개변수 타입이 달라서 오버로딩 적용 가능
//2 X	public void method1(int i, String str){}
//		매개변수 개수와 타입이 달라서 오버로딩 적용 가능
//-> 6번과 겹쳐서 안됨
//3 X	public void method1(int num){}
//		기준과 매개변수의 타입과 개수가 같아서 오버로딩 적용 불가
//		매개변수명은 오버로딩이 되는 조건과 상관 없다.
//4 X	public char method1(int point){}
//		기준과 3번 메소드와 매개변수의 타입, 개수가 같아서 오버로딩 적용 불가
//		매개변수명과 반환형은 오버로딩이 되는 조건과 상관 없다. 
//5	public void method1(int i, int k){}
//		매개변수 개수가 달라서 오버로딩 적용 가능
//6 X	public void method1(int num, String string){}
//		2번 메소드와 매개변수 타입과 순서, 개수가 같아서 오버로딩 적용 불가
//		매개변수명은 오버로딩이 되는 조건과 상관 없다.
//7	public void method1(String str, int i){}
//		매개변수 순서가 달라서 오버로딩 적용 가능
//
//정리))
//오버로딩이 되는 조건
//	매개변수의 개수가 다르거나
//		  종류가 다르거나
//		  순서가 다르거나	일 때 오버로딩이 적용 된다
//  ** 매개변수 명과 반환

 

 

 

 


"본 인터넷 사이트 내의 모든 이미지, 문구, 콘텐츠, 내용 등에 대한 저작권은 76beny에게 있습니다.

이를 무단으로 도용, 복사, 전재, 재배포, 2차 변형 등을 할 경우

민, 형사상 법적 조치 등 저작권법에 의거하여 처벌 받을 수 있습니다."

 

'[JAVA] > 07. 객체지향' 카테고리의 다른 글

19. 변수의 선언위치  (0) 2022.04.27
18. 객체배열  (0) 2022.04.27
21. 메소드 테스트  (0) 2022.04.10
20. 접근제한자(AccessModifier )  (0) 2022.04.10
19. Run  (0) 2022.04.10