0

这是一个与作业相关的问题,所以我最好不要发布任何代码,但我的问题是具体的。

我是 Eclipse 的新手,所以我只想知道我所看到的是否正常以及是否有出路。

我所做的是定义一个数据类型,它是一个包含构造函数、方法、测试客户端(static void main())的类。我使用了外部库中另一个类的另一个数据类型。现有数据类型的名称是WeightedQuickUnionUF,我们称之为WQUF简而言之。

我实例化了一个 WQUF 类型的变量以使用 WQUF 具有的方法static void main()。我在类的底部编写了一个测试客户端()来检查我的方法是否正常工作。我使用像 10 这样的常量作为参数来初始化我的数据类型变量。然后我在那个变量上使用了我的方法。我使用了一些 println 语句来输出变量的状态,以查看我的方法是否有效。

当我点击 Run 运行我的类时,控制台显示类 WQUF 正在运行并等待输入。我打开了 WQUF.class。是的,里面有一个测试客户端void main()

我的意图只是使用 WQUF 中的方法和私有变量,当然我看不到私有变量。我不想运行需要输入的 WQUF 测试客户端。

我的问题是,我面临的情况正常吗?有什么办法可以避免运行 WQUF 测试客户端?

PS:Findbugs发现了2个bug。说

死存储到我的 WeightedQuickUnionUF 实例变量并且未使用该变量的值

.另一个是

WeightedQuickUnionUF 是一个不成文的字段

.不知道这是什么意思。相关或误报。

4

2 回答 2

1

我相信这与 Eclipse 无关,但更像是您是 Java 新手,还没有完全弄清楚它是如何工作的。

执行 Java 程序的主要入口点是“public static void(String[] arguments)”。这是你实例化你的第一个对象的地方(并且可能调用它的一些方法)。因此,当您在 Eclipse 中右键单击您的类并选择“Run as java app”时,它会自动查找这样的主方法并调用它。所以当你运行它时会发生什么,实际上取决于你在那个 main 方法中编写的代码......

也许您也应该发布您的 2 个课程,以便我们更轻松地了解您的问题并引导您走向正确的方向。

作为旁注:

  • “死店”意味着您正在为字段/变量分配一个值,而以后不使用它
  • “未写字段”意味着您在尝试使用它之前没有为其分配值(来自定义、构造函数、方法等),因此它始终为 null

此外,当您对 Java 感到足够熟悉时,您可以查看 JUnit 或 TestNG 库,它们旨在帮助您以标准化的方式测试代码,而不是使用主要方法。

干杯

于 2013-04-05T16:06:21.040 回答
0

我的问题是,我面临的情况正常吗?这绝对是正常的,这就是我们所说的封装。

有什么办法可以避免运行 WQUF 测试客户端?您想制作自己的测试客户端方法吗?尝试从WQUF类扩展,所以它将是MyWQUF类然后覆盖testClient()方法。

于 2013-04-05T15:42:41.760 回答