-3

我正在尝试清理一下我的代码。这是我到目前为止所拥有的:

下一节课更新***

    }
}



**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.

代码之前没有格式化,都是一个没有方法或类的文件。我正在尝试将其转移过来。该程序以前运行良好。我不知道如何将主类中的变量调用到子类。

4

2 回答 2

0

首先标准 Java 风格是类名与方法名不同。IE

public class GradeSorter;

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

编辑:您还使用“new intNode();”创建了一个 intNode 对象,现在这将调用不存在的 intNode 类的无参数构造函数,因此到目前为止它调用默认构造函数。做这个

public class intNode

{

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

}
于 2013-08-12T22:55:37.230 回答
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 类的静态变量。所以你的字符串表达式会像

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 本身,您应该更多地研究一般的字段和方法、访问修饰符、类和对象之间的差异(为什么是静态的?)以及一般的面向对象编程,因为您发布的代码看起来很混乱并且结构不正确。

于 2013-08-12T22:57:37.563 回答