2014-11-02 97 views
-4

我的速度方法不斷給我一個錯誤說方法重載錯誤

速度「名爲‘速度’的方法沒有適用過載型被發現‘’也許你想要過載版本「無效速度(雙距離,雙倍時間)拋出java.io.IOException;'代替?」

我不太確定我該如何解決這個問題,但如果你們能幫忙,那就太好了,謝謝。

不管怎麼說,這裏是代碼:

import java.io.*; 
public class Velocity 
{ 
public static void main (String[] args) 
{ 
    velocity(); 
} 


public static void velocity (double distance, double time) throws IOException 
{ 
    BufferedReader myInput = new BufferedReader (new InputStreamReader (System.in)); 
    System.out.println ("Please input distance in meters:"); 
    distance = Double.parseDouble (myInput.readLine()); 
    System.out.println ("Please input time in seconds:"); 
    time = Double.parseDouble (myInput.readLine()); 
    System.out.println ("Therefore your velocity is " + distance/time + " m/s."); 
} 
} 
+1

你認爲'velocity();'應該做什麼?爲什麼? – 2014-11-02 16:16:43

+1

沒有冒犯,但它是明智的閱讀方法如何工作 – 2014-11-02 16:17:43

回答

2

您試圖調用一個方法速度();相反,您應該致電

velocity (1d, 2d); 

這是錯誤的原因。

關於重載:

,如果你有相同的名稱,如另一種方法:

public static void velocity() throws IOException() { 
    //body 
} 

然後你在這裏重載方法速度。所以定義它,它應該工作。

+0

感謝它的工作! – 2014-11-02 16:26:45

+0

我的快樂。將它標記爲已接受然後:) – SMA 2014-11-02 16:33:25

+0

雖然我只有一個問題,但我試圖查找1d和2d的含義,但是我找不到它。他們究竟做了什麼? – 2014-11-02 20:22:33

0

的唯一方法速度編譯器能找到的是:

public static void velocity (double distance, double time) throws IOException 

你的主通話是不帶任何參數的方法速度。沒有這樣的方法。編譯器正在找到名稱相同的靜態方法,並且基本上說'這跟我發現你所說的一樣近,是你的意思嗎?'。

假設您試圖調用靜態方法,您需要傳遞距離和時間的參數。