2012-10-18 96 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; 
}