2010-02-24 1 views
1

Times라는 클래스를 만들고 오버로드 된 메서드를 4 개 생성해야합니다. 나는 오버로드 된 메소드를 이해하는 데 도움이되고 적어도 첫 번째 메소드에 대해서는 도움이 필요하다. 나는 정말로 감사 할 것입니다. 감사합니다 :) 다중오버로드 된 메서드에 대한 도움말

  • 이 개 정수와 (정수)을 반환 제품 곱
  • 3 개 정수와 (정수)을 반환 제품
  • 곱하기 2 개 배 값
  • 및 반환 (더블) 제품
  • 곱셈 3 개 더블 가치와

답변

2

"오버로드 된 메서드"는 메서드의 이름이 모두 같고 같은 클래스에 있음을 의미합니다. 그러나 매개 변수는 숫자 또는 유형이 다를 필요가 있습니다.

모든 곱셈 항목 때문에 "곱하기"가 이름으로 사용됩니다.

첫 번째 : "곱하기"라는

곱셈

이 개 정수 반환

은 그래서 정수 (int를) 반환 (정수) 제품은 2 개의 int 소요

int multiply(int a, int b) { 

그것은 제품을 반환, 그래서 몸은 다음과 같습니다 : 매개 변수로, 그 우리를 제공

return a * b; 

그리고 우리는 그 일에 완료 : 우리를 제공

} 

:

int multiply(int a, int b) { 
    return a * b; 
} 

사용하여 다른 사람에 대해 동일한 접근 방법과 같은 이름.

1

이 보일 것 역시 뭔가를해야만이 같은 (더블) 제품을 반환 :


public class Times { 
    public int mult(int a, int b) { 
     return a*b; 
    } 
    public int mult(int a, int b, int c) { 
     return a*b*c; 
    } 
    //2 more overloaded versions to come here 
} 

무엇을 의미하는지 이해하십시오 - 코드가 컴파일 될 때 컴파일러는 인수를 살펴봄으로써 사용할 메소드 (모두 동일한 이름이라고 함)를 결정합니다. 이를 위해 동안

그래서이


int a = 1; 
int b = 1; 
Times t = new Times(); 
t.mult(a,b); 

같은 뭔가 예를 들어 컴파일러, 내가 보여 2 MULT 방법의 1을 선택합니다 :


int a = 1; 
int b = 1; 
int c = 2; 
Times t = new Times(); 
t.mult(a,b,c); 

는 2를 선택합니다 (기반 인수의 수에 관해서)

3

이런 식으로?

public class Times { 
    public static int multiply(int a, int b) { 
     return a * b; 
    } 

    public static int multiply(int a, int b, in c) { 
     return multiply(a, b) * c; 
    } 

    public static double multiply(double a, double b) { 
     return a * b; 
    } 

    public static double multiply(double a, double b) { 
     return multiply(a, b) * c; 
    } 
} 
+0

같은 작업을 수행 할 수 있습니다 http://en.wikipedia.org/wiki/Method_overloading – Alexandre

0

당신은 당신이 메소드 오버로딩 무엇인지에 대한 완만 한 설명이 여기에이

public class Times {  
public static void main(String[] args) { 
    System.out.println(multiplyInt(1,2)); 
    System.out.println(multiplyDoubles(2.0,3.0)); 
} 

public static int multiplyInt(int... numbers){ 
    int multiply = 1; 
    for(int number : numbers){ 
     multiply = multiply*number; 
    } 
    return multiply; 
} 

public static double multiplyDoubles(double... numbers){ 
    double multiply = 1; 
    for(double number : numbers){ 
     multiply = multiply*number; 
    } 
    return multiply; 
} 

}