我刚刚开始第二门计算机科学课程。本学期,我们正在使用Java开发第一个项目。项目中的第一种方法需要静态方法,该方法可以根据学分计算大学生的账单。
我遇到的主要问题是我的私有int和私有double的非法表达。我们做了一个inclass示例,其中我们将int私有化,并以非静态方法将double私有化,并且效果很好。进行静态和非静态操作有什么区别,如果是,我该怎么做才能更正它?
public class MyLibrary
{
public static double CalcFree (int c) throws creditException //integer c to represent total credits
{
private int credits;
private double bill;
if ( c > 1 && c < 33) //providing valid range of options for total number of credits
c = credits;
else
new creditException ("Invalid number of credits.");
if ( c > 12)
{
bill = credits * 110 + 50 + 20;
return bill;
}
else
{
bill = credits * 110 + 50;
return bill;
}
}
}
最佳答案
问题是CalcFree (int c)
方法中的这两行:
private int credits;
private double bill;
从两者中删除
private
。注意:如正确地指出,
c = credits;
必须更改为credits=c;
。您可以为实例变量指定访问修饰符,但不能为局部变量指定访问修饰符。
将局部变量的名称与实例变量的名称不同也是一种好习惯。