/*내용을 복사 한 후 이클립스에서

ctrl + shift + F를 눌러주세요!!*/

 

//오버로딩?! 메서드 오버로딩?!
//생각보다 쉽다..왜냐고? 진짜 별거 없거든~
//그냥 메서드에서 매개변수 -->  int add()   <--저 메서드에서 괄호안에 들어가는 매개변수만
//달리해주면 그게 오버로딩이래~ 예문을 보면 더 잘 알수 있쥐~~ㅎ
//자 ~ 달려주마! 잘 따라오숑

package JavaTest;

//우선 클래스 정의를 합죠! 앞에서 했던거 참조하장!
class MyMath3{
 int add(int a, int b){
  return a+b;
 }
 
 long add(int a, long b){                         //자~ 왼쪽 보면 메서드 add들이 여러개 있는데 이걸 오버로딩 같은 이름의
  return a+b;                                     //메서드로 처리한게 특징이라고 할 수 있지...요게 바로 오버로딩
 }                                                        //근데 원래는 메서드의 이름이 같으면 안되거든... 그럼 당연히
                                                          // 밑에서 처리할때 어떤 놈을 써줘야 할지 모르거든..그래서 자바에서는 저것들
 long add(long a, int b){                        //을 분리하는 방법으로 add 옆에 괄호 보이지 바로 매개변수의 형태만 전부
  return a+b;                                    //다르게 하면 그 형식에 맞는 놈들을 밑에서 불러다 쓸 수 있게 하는 방식인
 }                                                        //오버로딩을 만든것 같다.. 참으로 별거 아니지만 심오(?)한것 같다..ㅋㅋ
                                                           //아 참고로 리턴값은 오버로딩에는 아무런 영향을 끼치지 않는다고 열라게
 long  add(long a, long b){                     //강조하던데 참고만 하자!ㅋ
  return a+b;
 }
}

//////////자 그럼 밑에서 실제로 한번 써먹어보겠음돠~~~~!

public class OverloadingTest {

 public static void main(String[] args) {

  //클래스 안에 메서드..딱 저들을 보니 저건 '인스턴스 변수들이네...' 인스턴스를 먼저 시켜야 겠고만~~
  MyMath3 mm = new MyMath3();
  
  System.out.println(mm.add(3, 3));                //자 봤지?!! 위에 형식에 맞춰서 각각의 메서들을 불르는것을~~
  System.out.println(mm.add(3, 3L));
  System.out.println(mm.add(3L, 3));
  System.out.println(mm.add(3L,3L));
  
 }

}

 

Posted by 옆모습오빠
: