覆盖acm.program init()方法; Java必须这么难吗?

时间:2012-02-24 21:30:59

标签: eclipse init

Java问题

我是Java的学生。到目前为止,我设法编写了大约15个Java程序,并让他们在PC上工作。但是我还没有写一个像我最新的赋值所需的init()方法来初始化一些实例变量。编译器告诉我,我的init()方法试图覆盖acm.program中的最终init()方法。这不是init()方法应该做的吗?在上周耗尽PC上的所有途径之后,我想也许这是PC上的Eclipse问题。 Java文档中的所有示例代码都显示了很少的Mac窗口。所以我想我会尝试将我的代码移动到运行Lion OS 10.7.2的Mac上。

切换到MAC环境。

  1. Mac声称安装了Java,但我认为这只是运行时环境,而不是开发环境。我能找到的所有应用程序都是Java VisualVM,我认为它是虚拟机,因此没有Java开发软件。所以......我从斯坦福大学的网站上下载了Eclipse for Mac,并获得了Java IDE for Java Developers Version:Helios Service Release 2,并尝试运行一个包含import语句的简单程序。
  2. 导入acm.program。*;声明给编译器一个问题:“acm无法解析”。经过研究,我认为问题是我没有下载acm.jar存档并将其添加到我的构建路径。为什么这还没有为我做,作为Eclipse的一部分我不知道。我想一切都很难。
  3. 所以我下载了acm.jar存档,它位于我的下载文件夹中。我试过双击它,谢天谢地,mac不会执行它。我尝试将其拖入Eclipse中的源文件夹,然后将其添加到构建路径中。进入构建路径后,Eclipse告诉我jar丢失了。所以我从构建路径中删除了它,而不是从Eclipse内部转到Properties / Java Build Path / Libraries /添加外部JARS ...并导航到我的下载文件夹,其中acm.jar文件夹用于选择JAR。但是,Eclipse似乎正在寻找 .jar; .zip文件,因为我的Mac已经解压缩了该文件夹,所以没有。所以我更改了打开的窗口以查找所有文件(),现在我看到单独的.java文件太多,无法单独添加到构建路径。
  4. 回到PC并下载acm.jar zip文件并以解压缩的形式将其复制到Mac,然后再将其作为zip文件添加到构建路径中。这解决了编译器错误和我在Mac上执行的简单程序!
  5. 接下来,我将使用init()方法尝试我的程序,看看现在是否有效。不。 Mac上的问题相同。此init方法导致以下错误:此行处有多个标记

    • 覆盖acm.program.Program.init
    • 无法覆盖最终方法 程序

    public void init(){     canvas = new HangmanCanvas();     添加(帆布); }

  6. 是否必须这么难,或者我错过了什么?

2 个答案:

答案 0 :(得分:0)

  1. 通常Mac都安装了整个JDK。但是,Eclipse很不错。
  2. 这个“acm”软件包没有安装,因为它不是任何标准的东西;这就像问为什么你的冰箱里面没有芦笋一样。
  3. 最后一次对话是对的;你需要原始的jar文件。再试一次,右键单击“另存为...”链接以从浏览器中保存文件。
  4. 请参阅3.我发现任何人都会使用Windows电脑来弥补Mac的缺点,这一点特别有趣;实际上,Mac无限灵活,功能更强大。
  5. 如果您收到一条消息,抱怨您试图覆盖final方法,那么您确实在尝试做错事; final实际上表示“您不允许覆盖此内容。”也许你没有完全理解作业的说明。
  6. 我保证会变得更好。请务必将这些烦恼用作学习经历。

答案 1 :(得分:0)

没有理由认为Mac的Java比PC更好。语言和工具应该相同...假设您使用相同版本的语言和相似版本的工具。

init的问题与PC和Mac无关。因此,不要浪费时间切换平台来尝试修复它。你需要弄清楚

是什么

从表面上看,编译器/ IDE正在告诉你实情。 Java不允许您覆盖final方法。事实上,声明方法为final整点是为了防止重载。

但是,这没有意义。根据我发现here的文档,acm.program.Program.init()方法被设计被覆盖。那么为什么不让它?

我怀疑您的问题的原因是您已经下载或获得了某人误解的JAR文件的副本。有人将方法更改为final(出于某种原因最好的自己),编译并将其下载供人们使用。谷歌并不总是你的朋友......

因此,我建议您查看所有提供的文件和文件,以查找提供的JAR副本或WHERE下载文件的说明。然后将您当前使用的JAR副本替换为推荐的副本。


  

为什么这还没有为我做,作为Eclipse的一部分我不知道。我想一切都很难。

Eclipse如何知道这个“acm”的东西是什么?你需要哪个版本?从哪里下载?