2014-02-06 17 views
-4
public class Numbers2 
{ 
    public static void main(String[] args) 
    { 
     int number; 
     int numberTwo; 
     int jordan; 
     number = 5; 
     numberTwo = 10; 
     sum(number, numberTwo); 
     difference (number, numberTwo); 
     product (number, numberTwo); 
     System.out.println(jordan); 
    } 
    public static void sum(int number, int numberTwo, int jordan) 
    { 
     System.out.print("The sum of the numbers is"); 
     System.out.println((number + numberTwo)); 
    } 
    public static void difference(int number, int numberTwo, int jordan) 
    { 
     System.out.print(" The difference of the two numbers is"); 
      System.out.println((number - numberTwo)); 
    } 
    public static void product(int number, int numberTwo, int jordan) 
    { 
     jordan = number * numberTwo; 
     return jordan; 
    } 
} 

錯誤是:錯誤的含義是什麼:[方法]不能應用於[參數]?

H:\Numbers2.java:10: sum(int,int,int) in Numbers2 cannot be applied to (int,int) 
     sum(number, numberTwo); 
     ^
H:\Numbers2.java:11: difference(int,int,int) in Numbers2 cannot be applied to (int,int) 
     difference (number, numberTwo); 
     ^
H:\Numbers2.java:12: product(int,int,int) in Numbers2 cannot be applied to (int,int) 
     product (number, numberTwo); 
     ^
H:\Numbers2.java:28: cannot return a value from method whose result type is void 
     return jordan; 
      ^
4 errors 
+0

方法調用中的參數數量必須與方法聲明中參數的數量相匹配。如果你想要可變數量的參數,你必須使用可變參數:http://docs.oracle.com/javase/1.5.0/docs/guide/language/varargs.html –

回答

0

更改代碼這樣的...

public class Numbers2 
{ 
public static void main(String[] args) 
{ 
    int number; 
    int numberTwo; 
    int jordan; 
    number = 5; 
    numberTwo = 10; 
    sum(number, numberTwo); 
    difference (number, numberTwo); 
    product (number, numberTwo); 

} 
public static int sum(int number, int numberTwo) 
{ 
    System.out.print("The sum of the numbers is"); 
    System.out.println((number + numberTwo)); 
return number + numberTwo; // returns addition 
} 
public static intdifference(int number, int numberTwo) 
{ 
    System.out.print(" The difference of the two numbers is"); 
     System.out.println((number - numberTwo)); 
return number - numberTwo; // returns the subtraction 
} 
public static int product(int number, int numberTwo) 
{ 
    jordan = number * numberTwo; 
    return jordan; // returns the product 
} 
} 
+0

哇,非常感謝你 – JavaNovice

0

看來,你是一個有點困惑如何定義和Java調用方法。

我看到你的方法每個都有三個參數,但是第三個參數是在你的方法中設置並返回的。當定義一個方法時,你聲明type輸出將在你定義你的參數之前。在你的情況下,你目前將其定義爲void。這告訴編譯器你的方法不返回任何東西。在你的情況下,你想告訴它你的方法返回一個整數。這方面的一個例子是以下幾點:

public static int product(...

此外,當您對一個方法的調用,您的電話必須在方法的簽名相匹配。這意味着你必須傳入相同數量和類型的參數。在你的情況下,你的方法全部被聲明爲以三個int作爲輸入,但是當你給他們打電話時你只傳入兩個。

最後,我看到您正在傳入一個名爲jordan的參數,並試圖修改其值。默認情況下,java通過「按值」傳遞對象(技術上,它傳遞對象的引用並且引用本身是「按值」)。如果您想要實際修改參數的值,則必須將其傳遞給包裝器對象。但是,在大多數情況下,您需要在方法內部創建一個新變量並返回該變量。示例如下:

// note the "int" keyword before the method name 
public static int product(int number, int numberTwo) 
{ 
    int jordan = number * numberTwo; // create a new variable to hold our response 
    return jordan; // returns the product 

    // You can also just return the result of an operation: 
    //return number * numberTwo; 
} 
相關問題