** 메소드 오버로딩(Method Overloding)

 

  - 같은 클래스 내에서 같은 이름의 메소드를 여러개 선언하는 것

  - JVM은 같은 이름의 메소드가 있으면 메소드가 받는
     인수의 갯수와 데이터 타입을 비교하여
     다르면 각각 다른 메소드로 인식을 한다.
     단 return 타입은 메소드를 구분하는 조건으로 사용하지 않는다

  - 중복정의, overloading
  - 하나의 클래스 내에서 같은 이름을 가지는 메소드가 여러개 정의
  - 컴파일러에 의해 각 메소드들이 구별되며, 기준은 인자가 된다.
  - [접근제한],[반환형] : 오버로딩 구조 조건에서 제외, 아무 영향을 주지 않음.
  - [메소드명] : 반드시 같아야 함.
  - (자료형 인자1,…) : 매개변수의 개수 또는 타입을 반드시 다르게 해야 함.
  - 오버로딩된 메소드들은 매개변수에 의해서만 구별된다.
  - 오버로딩 기법이 필요한 이유 : 같은 목적으로 비슷한 동작을 수행하는 메소드들을 같은 이름으로 일관되게 작업

 

 

 

파일명 : OverLoadTest1.java

 

package oop;

class Mobile
{
    String company;
    String model;
    int price;
    void prn(int p)
    {
        System.out.println("price="+p);
    }
    void prn(String comp)
    {
        System.out.println("company="+comp);
    }
    void prn(String comp,String mo)
    {
        System.out.println("company="+comp);
        System.out.println("model="+mo);
    }
    void prn()
    {
        System.out.println("company="+company);
        System.out.println("model="+model);
        System.out.println("price="+price);
    }
/*    int prn()
    {
        return 1;
    } 에러*/
}

public class OverLoadTest1 {

    public static void main(String[] args) {
       Mobile mobile1=new Mobile();
       mobile1.company="SAMSUNG";
       mobile1.model="Anycall";
       mobile1.price=1000;
       mobile1.prn(mobile1.price);
       mobile1.prn(mobile1.company,mobile1.model);
       mobile1.prn(); //company,model,price 전부출력
       mobile1.prn("LG");
      

    }

}

 

파일명:OverLoadTest2.java

 

package oop;

class Calc
{
    void hap(int a,int b)
    {
        System.out.println(a+"+"+b+"="+(a+b));
    }
    void hap(double a, double b)
    {
        System.out.println(a+"+"+b+"="+(a+b));
    }
    void hap(String a, String b)
    {
        System.out.println(a+"+"+b+"="+(a+b));
    }
}

public class OverLoadTest2 {

    public static void main(String[] args) {
      
        Calc calc=new Calc();
        calc.hap(10,20);
        calc.hap(2.3,4.5);
        calc.hap("HAPPY","SKY");
    }

}

'..열심히 공부하세.. > JAVA 문법' 카테고리의 다른 글

[19] 변수의 유효범위 (Scope)  (0) 2012.04.26
[18] 생성자 함수  (0) 2012.04.26
[16] 메소드호출방식  (0) 2012.04.24
[15] Math 클래스 및 Wrapper 클래스  (0) 2012.04.24
[메소드 연습]  (0) 2012.04.24

+ Recent posts