728x90
메서드명을 동일하게 사용해보자,
overLoad
public void juiceCafe1() { // 메서드의 header
System.out.println("무슨 주스를 원하시나요 ?"); // 메서드의 body
System.out.println("메서드 구성 : 매개변수 X void O"); // 메서드의 body
System.out.println();
}
일반적인 메서드를 만들어보자,
인자를 하나 추가해 놓는다면 , 자바는 다른 메서드로 인식한다.
public void juiceCafe1(String s) {
System.out.println("메서드 명 중복 테스트");
System.out.printf("무슨 주스를 원하시나요 ? %s %n", s);
System.out.println();
}
- 실행
ex03.juiceCafe1();
ex03.juiceCafe1("오렌지");
메인 메서드도 메서드인데 오버로딩이 가능할까 ?
public static void main(int i) {
System.out.println("오버로딩 테스트");
}
public static void main(String[] args) { //static 임으로 ,
//메서드 호출
Ex03_Method ex03 = new Ex03_Method();
아주 특별한 일 없으면 메인을 오버로딩 하는 경우는
드무나 오버로딩이 허용됨으로 오류가 일어나진 않는다.
우리가 사용하는 클래스의 메서드들도 같은 이름의 인자가 다른 형태를 볼 수 있다.
Integer 의 메서드.
즉 , 메서드 오버로딩이란
1. 하나의 클래스내에서 메더으 이름의 중복을 허용한다.
2. 단 , 매개변수의 갯수 또는 타입이 반드시 달라야한다.
3. 장점 : 동일한 기능에 대해 메서드 명을 통일 시킬수 있다.
장점을 잘 보기 위한 코드
public static int add (int a , int b) {
return a+b;
}
public static double add (int a , double b) {
double result = (double)a + b ;
return result;
}
public static double add (double a , int b) {
double result = a + (double)b ;
return result;
}
public static double add (double a , double b) {
return a+b;
}
int 형과 double 형에 대해 어떤 순서로 인자가 들어오든
들어오면 더해서 반환 할 수 있는 메서드를 만들 수 있다.
public static void main(String[] args) {
System.out.println("int+int : "+Ex07_overLoading.add(3, 6));
System.out.println("double+int : "+Ex07_overLoading.add(3.2, 6));
System.out.println("int+double : "+Ex07_overLoading.add(3, 6.7));
System.out.println("double+double : "+Ex07_overLoading.add(3.12, 6.41));
}
오버로딩은 자주 이용되고 , 사용의 확장성을 주기 때문에 잘 알아두면 요긴하게 쓸 수 있다.
'Developer > JAVA' 카테고리의 다른 글
JAVA , 팩토리얼 연산 (Factorial)과 static (0) | 2024.08.03 |
---|---|
JAVA , 매개변수의 전달 방식 : CallByValue와 CallByReference (0) | 2024.08.03 |
JAVA, 클래스의 멤버 메서드 , 지역변수와 전역변수 (0) | 2024.08.02 |
JAVA , 클래스와 인스턴스(객체), 객체의 의미 , 나만의 클래스 만들기 (0) | 2024.08.02 |
JAVA , 배열 예제 (서치 알고리즘 , 정렬 알고리즘 ,Arrays) (0) | 2024.08.01 |