안녕 오늘은 싱나는 연휴 코앞이야!
그 기념으로 오버로딩을 배워 볼꺼야
연휴와 오버로딩은 아무런 관련이 없지만
내 의식은 그러하다아
그럼 시작해볼게잇
Overloading
간단하게 정의를 해보자면
매개변수의 유형이나 갯수등을 다르게해서
이름이 같은 메소드를 여러개 가질 수 있게하는거야
돈이라는 메소드가 있어
근데 돈에는 10원~ 5만원권까지
다양하게 있지>?
Class MoneyType{
public int money(int a){
return a;
}
public int money(int a, int b){
return a + b;
}
public int money(int b, int c){
return b + c;
}
}
( 아 줴발 들여쓰기 오류좀 잡아줘열)
이런 식으로 메소드는 같지만 하는일은 같은거지
메소드를 오버로딩할때 주의점이있어
매개변수 및 갯수가 동일한게있어서는 안되는거야
만약에 이러한 코드가 있어
Class MoneyType{
public int money(int a, int b){
return a + b;
}
public int money(int a, int b){
return a + b;
}
}
대체 이게 무슨 자원 낭비야!
이렇게 쓰면 뭐.. 뭘쓰든 문제가 없기야 하겠지만
생각해보면 세상 비효율적이지
우리가 회사에서 일을하는데
A 대리 : " XX씨! 이 일좀 해줘요"
B 과장 : " XX씨! 이 일좀 해줘요"
근데 보니까 양식도 똑같고~
딱히 두개로 처리할 필요도 없는 그런일이라고 생각해봐
"아니 이게 무슨 쑈야..? 혹시 몰래카메라인가..?"
"이게 바로 착한 사람들한테만 보이는건가..? 다른점이 왜 안보이지"
너무 비효율적이겠지 ?
이런 친구들도 호출이 가능해
package project;
public class MethodOverloding {
public void calc(int a){
System.out.println(a);
}
public void calc(int a, int b){
System.out.println(a+b);
}
public void calc(int a, int b, int c){
System.out.println(a+b+c);
}
public static void main(String[] args) {
Main sum = new Main();
sum.calc(1);
sum.calc(1,2);
sum.calc(1,2,3);
}
}
calc 라는 이름의 친구들 3개가 있는데
매개변수의 수가 다 다르지?
근데 메인메소드를 보면...?
다를게 없어
매개변수의 모양에 따라 맞춰주기만 했을뿐이야
결과가 너무 정상적으로 뜨지 ?
정리를 해보자
같은 클래스에서 같은 매소드를 사용하는것인데
매개변수의 종류, 개수가 다름
호출 = 별 달리 특별한건 없음..
하지만 이 친구는 잘 사용되는 개념이니 잘 알아두자구
그럼 20000!
'Lang [ ] java = { > Java' 카테고리의 다른 글
[Java] Interface, 인터페이스란 무엇일까 ? (2) | 2020.05.19 |
---|---|
[Java] 추상화란 무엇일까? (5) | 2020.05.14 |
[Java] this와 this()..? 차이점 알아보기 (4) | 2020.04.27 |
[Java] 생성자를 알아보자 (메소드와 다른점) (4) | 2020.04.24 |
[Java] Method가 뭘까? 메소드란?! (11) | 2020.04.21 |