清理代码但不工作

时间:2013-08-12 22:48:03

标签: java

我正在尝试清理我的代码。以下是我到目前为止的情况:

下一堂课更新***

    }
}



**ERRORS BELOW:**

 ----jGRASP exec: javac -g gradeSorter.java

gradeSorter.java:18: error: cannot find symbol
    intNode good = new intNode();
    ^
  symbol:   class intNode
  location: class gradeSorter
gradeSorter.java:18: error: cannot find symbol
    intNode good = new intNode();
                       ^
  symbol:   class intNode
  location: class gradeSorter
2 errors

 ----jGRASP wedge2: exit code for process is 1.
 ----jGRASP: operation complete.

之前没有格式化代码,并且只是没有方法或类的单个文件。我正试图将它转移过来。该计划之前工作得很好。我不知道如何将主类中的变量调用到子类。

2 个答案:

答案 0 :(得分:0)

首先,标准Java样式是类名称,与方法名称不同。 I.E

public class GradeSorter;

我不知道您是否正在使用try catch如何使用它。当你试图找到文件“grades.dat”时,如果它生成异常,它们就会创建和intNode对象。如果没有例外你的程序结束。

编辑:您还使用“new intNode();”创建一个intNode对象,现在这将调用您的intNode类的no-arg构造函数,该构造函数不存在,因此现在它调用默认值。做这个

public class intNode

{

   public intNode()
   {whatever you want when object is created}

}

答案 1 :(得分:0)

您的课程似乎不在同一个套餐中。在每个文件的顶部,您应该有一行包含信息,例如:

package mypack;

同一个包中的类可以访问彼此的公共字段和方法。 注意:如果使用javac编译代码,则在打包类时,编译命令会略有不同。阅读有关Java中的软件包的更多信息,因为这是修复错误所需要的。

新信息更新:

要从intNode访问fmt,您需要在main方法之外声明此变量,如果您仍希望在main方法中初始化fmt,它可能如下所示:

public class GradeSorter{

    public static DecimalFormat fmt;

    public static void main(String[] args) throws IOException {

        fmt = new DecimalFormat("0.000");
    (...)

现在从intNode访问fmt:

GradeSorter.fmt;

因为它是一个绑定到GradeSorter类的静态变量。所以你的String表达式就像

result += "The average of these grades is : " + GradeSorter.fmt.format(average);
result += "The standard deviation of these grades is: " + GradeSorter.fmt.format(deviation);

另外,请注意您的String方法(toString(),frequency())缺少返回语句。

关于格式化本身,有许多标准为Java代码设置(类似于方法名称编写如下:thisIsMyMethod();类编写如下:ThisIsMyClass)以及用于编写优雅和可读代码的许多标准(制表) ,支撑等。互联网(和书!)资源等待(重新)发现。 关于Java本身,您应该更多地研究字段和方法,访问修饰符,类和对象之间的差异(为什么是静态?)和一般的面向对象编程,因为您发布的代码看起来很混乱而且结构不好。