我刚刚开始第二门计算机科学课程。本学期,我们正在使用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;

您可以为实例变量指定访问修饰符,但不能为局部变量指定访问修饰符。

将局部变量的名称与实例变量的名称不同也是一种好习惯。

10-06 06:08