Test106~107 메소드 중복정의(Method Overloading)의 개요
2020. 9. 7. 13:15
○ 메소드 오버로딩의 개요
메소드 오버로딩(Overloading)이란 메소드가 처리하는 기능은 같고 메소드 괄호 속에 오는 인수(인자, 매개변수, 파라미터)의 갯수가 다르거나 자료형(Data Type)이 다른 경우 메소드의 이름을 동일한 이름으로 부여하여 메소드를 정의할 수 있도록 문법적으로 허용하게 되는데 이를 메소드 오버로딩(Method Overloading) 이라고 한다.
다음과 같이 같은 이름의 메소드를 3개 정의할 수 있다.
// 선을 그리스 메소드 정의
public static void drawLine()
{
System.out.println("====================");
}
// 선의 형태를 바꾸어 그리는 메소드 정의
public static void drawLine(char c)
{
for (int i =0; i < 20; i++)
{
System.out.print(c);
}
System.out.println();
}
// 선의 형태와 길이를 바꾸어 그리는 메소드 정의ㅡ
public static void drawLine(char c, int n)
{
for (int i = 0; i< n; i++)
{
System.out.print(c);
}
System.out.println();
}
같은이름의 메소드들 중 인자의 갯수나 자료형이 일치되는 메소드를 호출하여 사용할 수 있다.
public class Test106
{
public static void main(String[] args)
{
drawLine();
//--==>> ====================
drawLine('+');
//--==>> ++++++++++++++++++++
drawLine('>');
//--==>> >>>>>>>>>>>>>>>>>>>>
drawLine('/', 50);
//--==>> //////////////////////////////////////////////////
drawLine('+', 30);
//--==>> ++++++++++++++++++++++++++++++
}
}
※ 메소드 오버로딩이 가능한 형태 & 불가능한 형태
public class Test107
{
public static void main(String[] args)
{
print('A');
double result = print(10, 0);
print(10.0);
}
public static void print(){}
public static void print(int i){}
//public static void print(int j){} //-- (Ⅹ)
public static void print(char c){} //-- 자동 형 변환 규칙 check~!!!
public static void print(int i, int j){}
//public static void print(double d){} //-- 자동 형 변환 규칙 check~!!!
//public static double print(double d){return 3.14;} //-- (Ⅹ)
//public static void print(double e){return 3.14;} //-- 정의 불가
}
'JAVA > 클래스와 객체' 카테고리의 다른 글
Test105 클래스와 인스턴스 활용(2) (0) | 2020.09.07 |
---|---|
Test104 클래스와 인스턴스 활용(1) (0) | 2020.09.07 |
Test103 클래스 변수(static 변수)와 클래스 메소드(static 메소드) (0) | 2020.09.07 |
Test102 정보은닉과 접근제어 지시자(2) (1) | 2020.09.06 |
Test101 정보은닉과 접근제어지시자(1) (0) | 2020.09.06 |