2012-10-18 95 views
1

好,所以我不明白爲什麼它說該方法沒有被本地使用....私人String formatNumber()方法是這樣說的。呼叫方法回合java

基本上我需要做的是有一個返回圓周 的方法 - 舍入的數字爲2位小數並返回一個字符串 另一種方法 - 和返回圓周的格式化版本的另一種方法...

不難看出我想要做什麼,但它給了我上述錯誤,我無法弄清楚。

//figures out circumference 
public double getCircumference(){ 

    circumference = 2 * Math.PI * radius; 

    return circumference; 


} 
    //takes string and turns back into a double 
public double getFormattedCircumference(){ 

    double x = Double.parseDouble(format); 
    return x; 


} 
//this method is giving the error of not being used locally... 
    //method takes double and turns to string so that it can be formatted and it 
     has to be a string 
private String formatNumber(double x){ 

    x = circumference; 
    NumberFormat number = NumberFormat.getNumberInstance(); 
    number.setMaximumFractionDigits(2); 
    String format = number.format(x); 
    return format; 
} 

回答

3

聲明瞭私有方法,但你不能在當前的代碼中使用它的任何地方,所以編譯器警告您的這個(檢查程序,看看你在任何地方調用此方法) 。

順便說一句,你看到的是一個警告不是錯誤。您的代碼仍然應該編譯,並且程序仍然會運行(如果沒有錯誤存在)。


編輯1
你已經是一個嚴重問題與方法,也許不止一個,因爲它發生在一個雙參數,然後立即將其丟棄。爲什麼?如果你想格式化傳入的數字作爲參數,那麼你不想丟棄該參數。另外,你是否想讓這個方法public這樣它可以被這個類以外的對象調用?此外,該方法是否有狀態或將是無狀態的?它會使用該類的字段,還是隻會格式化傳遞給它的數字。如果後者比它應該是一個static方法。

+0

好的。所以我必須設置它,以便getFormattedCircumference調用私有方法?對?那麼我實際上可以在主類中顯示正確的數字。 –

+0

@Tobin:請參閱修改。 –

+0

對不起,應該說有構造函數...它只會格式化傳入它的數字,它將用於格式化區域和周長。 –

0

我明白了。我正在讓它比實際上更難。

//figures out circumference 
public double getCircumference(){ 

circumference = 2 * Math.PI * radius; 

return circumference; 


} 

public String getFormattedCircumference(){ 

return formatNumber(getCircumference()); 

} 


//formats to two decimal places. 
private String formatNumber(double x){ 

NumberFormat number = NumberFormat.getNumberInstance(); 
number.setMaximumFractionDigits(2); 
String format = number.format(x); 
return format; 
}