반응형

 

 

안녕 오늘은 싱나는 연휴 코앞이야!

그 기념으로 오버로딩을 배워 볼꺼야

 

연휴와 오버로딩은 아무런 관련이 없지만

내 의식은 그러하다아

 

그럼 시작해볼게잇

 


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!

 

 

 

 

반응형