Java问题
我是Java的学生。到目前为止,我设法编写了大约15个Java程序,并让他们在PC上工作。但是我还没有写一个像我最新的赋值所需的init()方法来初始化一些实例变量。编译器告诉我,我的init()方法试图覆盖acm.program中的最终init()方法。这不是init()方法应该做的吗?在上周耗尽PC上的所有途径之后,我想也许这是PC上的Eclipse问题。 Java文档中的所有示例代码都显示了很少的Mac窗口。所以我想我会尝试将我的代码移动到运行Lion OS 10.7.2的Mac上。
切换到MAC环境。
接下来,我将使用init()方法尝试我的程序,看看现在是否有效。不。 Mac上的问题相同。此init方法导致以下错误:此行处有多个标记
public void init(){ canvas = new HangmanCanvas(); 添加(帆布); }
答案 0 :(得分:0)
final
方法,那么您确实在尝试做错事; final
实际上表示“您不允许覆盖此内容。”也许你没有完全理解作业的说明。答案 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”的东西是什么?你需要哪个版本?从哪里下载?