[TIL] 메소드 오버로딩
메소드 오버로딩이란?
한 클래스 내에서 이름이 같은 메소드를 정의하는 것
조건
- 매개변수의 타입이 다르거나 매개변수의 개수가 달라야한다.
- 오버로딩 된 메소드는 매개변수에 의해서만 구분된다.
- 매개변수는 같으나 반환형이 다를 경우 컴파일 오류가 발생한다.
- 메소드 리턴 타입은 오버로딩을 구현하는데 아무런 영향을 주지 못한다.
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
37
38
39
40
41
42
43
44
45
46
47
48
49
|
package ex0804;
public class Overloading_Ex1 {
public static void main(String[] args) {
User3 ob = new User3();
short a =10;
int b=20;
long c=30;
Short d=40;
// 중복정의 우선순위
// 기본 자료형은 먼저 기본자료형에서 처리함
// 동일타입 > 가장 가까운 큰자료형 > Wrapper 클래스
ob.print();
ob.print(a); // int : 10
ob.print(b); // int : 20
ob.print(c); // long : 30
ob.print(d); // Short : 40
}
}
//overloading : 중복정의
//동일한 클래스에서 메소드의 이름은 동일하지만
//매개변수의 개수가 다르거나 메개변수의 타입이 다른 경우
class User3{
public void print() {
System.out.println("인자없는 메소드..");
// 컴파일 오류 : 매개변수가 같으면(타입과 개수) 중복 정의가 아님
// public int print() {
// return1;
// }
}
//Short : 기본자료형인 short를 클래스로 만들어 놓은 Wrapper 클래스
public void print(Short a) {
System.out.println("Short:"+a);
}
public void print(int a) {
System.out.println("int:"+a);
}
//Long : 기본자료형인 long을 클래스로 만들어 놓은 Wrapper 클래스
public void print(Long a) {
System.out.println("long:"+a);
}
}
|
cs |
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
37
38
39
40
41
|
package ex0804;
public class Overloading_Ex2 {
public static void main(String[] args) {
User4 u = new User4();
int a;
double b;
a=u.area(10,5);
u.write(a);
u.write("사각형",a);
b=u.area(5);
u.write(b);
u.write("원",b);
}
}
//사각형 넓이:50
//사각형:50.0
//원 넓이:78.5
//원:78.5
class User4{
public int area(int w, int h) {
return w*h;
}
public double area(int r) {
return r*r*3.14;
}
public void write(int s) {
System.out.println("사각형 넓이:"+s);
}
public void write(double s) {
System.out.println("원 넓이:"+s);
}
public void write(String t, double s) {
System.out.println(t+":"+s);
}
}
|
cs |
'Language > JAVA' 카테고리의 다른 글
[TIL] 비정형 인자 (가변 인수) (0) | 2020.08.04 |
---|---|
[TIL] 재귀 호출 (0) | 2020.08.04 |
[TIL]클래스의 활용 (0) | 2020.08.03 |
[TIL]메소드 (0) | 2020.07.31 |
[TIL] 참조 변수 (0) | 2020.07.31 |
댓글