이 게시물에는 아래의 내용이 포함되어있습니다.
1. 메서드 오버로딩
2. 오버로딩의 예
3. 오버로딩의 장점
4. 예제
1. 메서드 오버로딩
하나의 클래스에 같은 이름을 가진 메서드를 여러개 정의하는 것
메서드의 이름이 같고 매개변수의 개수와 타입이 다르다.
리턴타입이 다른 것은 오버로딩 성립안된다.
2. 오버로딩의 예
System.out.println메서드
같은 이름의 메서드에 매개변수타입이 다릅니다.
3. 오버로딩의 장점
하나의 이름의 메서드로 여러가지 기능을 구현할 수 있다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
package sec01_exam_overloading;
public class Overloading {
//add()오버로딩을 하고 있음. new의 개념
public int add(int a, int b) {
System.out.print("int add(int a , int b) -");
return a + b;
}
public long add(int a, long b) {
System.out.print("int add(int a , long b) -");
return a + b;
}
public long add(long a, int b) {
System.out.print("int add(long a , int b) -");
return a + b;
}
public long add(long a, long b) {
System.out.print("int add(long a , long b) -");
return a + b;
}
public int add(int[]arr) {
//배열의 모든 요소의 합을 결과로 돌려준다.
System.out.print("int add(int[]arr) -");
int result = 0;
for (int i = 0; i < arr.length; i++) {
result +=arr[i];
}return result;
}
}
|
cs |
add메서드를 오버로딩 하고 있습니다.
매개변수가 모두 다릅니다.
리턴 타입이 다른 것은 성립하지 않습니다.
실행클래스입니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
package sec01_exam_overloading;
public class OverloadingEx {
public static void main(String[] args) {
Overloading overloading = new Overloading();
//매개변수의 개수와 타입에 따라서 호출되는 메서드가 달라짐을 기억하자.
System.out.println("Overloading.add(3,3) 결과: " + overloading.add(3, 3));
System.out.println("Overloading.add(3L,3) 결과: " + overloading.add(3L, 3));
System.out.println("Overloading.add(3,3L) 결과: " + overloading.add(3, 3L));
System.out.println("Overloading.add(3L,3L) 결과: " + overloading.add(3L, 3L));
int[] arr = new int[] {100,200,300};
System.out.println("Overloading.add(arr) 결과: " + overloading.add(arr));
System.out.println("Overloading.add(new int[] {1000,1400,1500}) 결과: "
+ overloading.add(new int[] {1000,1400,1500}));
}
}
|
cs |
같은 add를 호출했지만 매개변수에 따라서 다른 메서드를 호출하는 것입니다.
728x90
'JAVA > java 이론' 카테고리의 다른 글
[자바JAVA] 생성자 constructor / this()/ 생성자를 이용한 인스턴스 복사 (0) | 2020.10.11 |
---|---|
[자바JAVA]final필드와 상수 (0) | 2020.10.10 |
[자바JAVA] 재귀호출, 팩토리얼 (0) | 2020.10.09 |
[자바JAVA] call by value & call by reference/ 값에 의한 참조 & 주소에 의한 참조 (0) | 2020.10.09 |
[자바JAVA]JVM의 메모리구조- 호출스택 (0) | 2020.10.08 |