'오버로딩'에 해당되는 글 2건

  1. 2013.06.06 오버라이딩(Overriding)
  2. 2013.06.03 오버로딩?! 메서드 오버로딩?!

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

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

 

//P.239 오버라이딩~(overriding)
//앞전에 오버로딩에 대하여 MyMath3 으로 만든것이 있었다. 똑같은 예문에 추가로
//오버라이딩에 대하여 정의 해볼께요~~~
//따라와랏!!!

package JavaTest;

//우선 클래스 정의를 합죠! 앞에서 했던거 복사했음 (-_-)v

class MyMath{
 
 int method = 0;
 
 int add(int a, int b) {           //메서드~
  return a + b;
 }

 long add(int a, long b) {      //메서드~
  return a + b;
 } 
  

 long add(long a, int b) {      //메서드~
  return a + b;
 } 
  

 long add(long a, long b) {    //메서드~
  return a + b;
 }
 
 int method(){
  
  return ++method;                       //오버라이딩 추가 설명을 위해 추가함!
 }
}

///////여기까지는 오버로딩인거 알쥐? 매개변수 값만 달리 해주는것!~~~ Pass~~~

 

class MyMath6 extends MyMath{      //자~ 위에 MyMath 를 상속 받아 보았습니다.
 
 //오버라이딩 시작하겠습니다. 위에 있는 첫번째 메서드를 변경하겠습니다.!
 
 int add(int a, int b){            //이거 오버라이딩이얌! 위에꺼 그대로 똑같이 써놓고 먼 말이냐고?
  return a + b;                 //상황상 왼쪽은 이렇게 써놓았지만 내용은 완전히 다르게 하는거쥐~
 }                                      // 아~ 이 예문은 아무래도 적절치 않은것으로 보인다 하나더 추가할께!
 
 int method(){                   //자 이 예문을 보면 이해가 되나?? 역시 자바의 세계는 헷갈려~~
  
  return --method;                       // (~_~)/
 }
 
}

public class MyMath4 {

 public static void main(String[] args) {

  MyMath6 mm = new MyMath6();

  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));
  System.out.println(mm.method());   //요놈이 바로 메서드 오버라이딩을 해서 나온값입뉘다!!!

 }

}

//전에 적어 놨던 예문 때문에 조금 헷갈리고 난잡해 보이지만 '오버로딩'도 기억할겸 같이 적어서 만들어 보았음!
//책의 예문은 너무 이론에만 충실해서리.. 참고하길 바래요~

'::::특별한 Java Story' 카테고리의 다른 글

제어자,static,final  (0) 2013.06.08
Super,Super() 조상클래스 생성자 만들기  (0) 2013.06.07
단일상속(single inheritance)  (0) 2013.06.06
클래스간의 관계(포함관계) has-a  (0) 2013.06.06
상속(inheritance)  (0) 2013.06.06
Posted by 옆모습오빠
:

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

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 옆모습오빠
: