Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Eclipse 重写acm.program init()方法;Java一定要这么难吗?_Eclipse_Init - Fatal编程技术网

Eclipse 重写acm.program init()方法;Java一定要这么难吗?

Eclipse 重写acm.program init()方法;Java一定要这么难吗?,eclipse,init,Eclipse,Init,Java问题 我是Java的学生。到目前为止,我成功地编写了大约15个Java程序,并让它们在PC上运行。但我还没有编写像我最近的赋值那样的init()方法来初始化一些实例变量。编译器告诉我,我的init()方法正在尝试重写acm.program中的最终init()方法。这不是init()方法应该做的吗?在上个星期用尽了PC上的所有方法之后,我想这可能是PC上的Eclipse问题。Java文档中的所有示例代码都显示了一些Mac windows。所以我想我会尝试将我的代码转移到运行Lion OS

Java问题

我是Java的学生。到目前为止,我成功地编写了大约15个Java程序,并让它们在PC上运行。但我还没有编写像我最近的赋值那样的init()方法来初始化一些实例变量。编译器告诉我,我的init()方法正在尝试重写acm.program中的最终init()方法。这不是init()方法应该做的吗?在上个星期用尽了PC上的所有方法之后,我想这可能是PC上的Eclipse问题。Java文档中的所有示例代码都显示了一些Mac windows。所以我想我会尝试将我的代码转移到运行Lion OS 10.7.2的Mac上

切换到MAC环境

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

    • 覆盖acm.program.program.init
    • 无法从中重写最终方法 节目
    公共void init(){ 画布=新的HangmanCanvas(); 添加(画布); }

  • 一定要这么难,还是我错过了什么
  • 一般来说,Mac安装了整个JDK。不过Eclipse很不错
  • 这个“acm”软件包没有安装,因为它不是任何标准的东西;这就像问为什么你的冰箱里没有芦笋
  • 最后一个对话框是正确的;您需要原始jar文件。再试一次,右键单击并单击“另存为…”链接以从浏览器保存文件
  • 我觉得特别有趣的是,任何人都会用Windows电脑来弥补Mac电脑的缺点;事实上,Mac电脑更灵活、功能更强大
  • 如果您收到一条消息,抱怨您试图覆盖一个
    final
    方法,那么您确实试图做错事;
    final
    实际上意味着“您不允许覆盖此方法”。也许您没有完全理解作业说明
  • 我保证,情况会好起来的。一定要把每一个烦恼都当作一次学习的经历

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

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

    从表面上看,编译器/IDE告诉了您真相。Java不会让您重写
    final
    方法。事实上,将方法声明为
    final
    的关键是防止重载

    然而,这是没有意义的。根据我找到的文档,
    acm.program.program.init()
    方法被设计为被重写。那么为什么它不允许您呢

    我怀疑你出现问题的原因是你下载了一个JAR文件,或者有人给了你一个JAR文件的副本,而这个JAR文件被人弄乱了。有人把这个方法改成了final(出于某种原因,最好自己知道),编译后放在上面让人们下载。谷歌并不总是你的朋友

    因此,我建议您查看所有的讲义和提供的文件,以找到提供的JAR副本或下载指南。然后用推荐的JAR副本替换您当前使用的JAR副本


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


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

    谢谢。在Mac上。我从PC开始只是为了不使用Mac,因为我妻子经常使用Mac。但现在我正在使用Mac来尝试