Переопределение метода acm.program init ();Java должна быть такой сложной? - PullRequest
0 голосов
/ 25 февраля 2012

Проблемы с Java

Я изучаю Java.Мне удалось написать около 15 программ на Java и заставить их работать на ПК.Но я еще не написал метод init (), как того требует мое последнее назначение, чтобы инициализировать некоторые переменные экземпляра.Компилятор говорит мне, что мой метод init () пытается переопределить последний метод init () в acm.program.Разве это не то, что должен делать метод init ()?После того, как я исчерпал все возможности на ПК за последнюю неделю, я подумал, что это может быть проблема с Eclipse на ПК.Весь пример кода в документации Java показывает маленькие окна Mac.Поэтому я решил попробовать перенести свой код на Mac под управлением Lion OS 10.7.2.

Переключение в среду MAC.

  1. Mac утверждает, что установил Java, но я думаю, что это просто среда выполнения, а не среда разработки.Все, что я мог найти для приложений, это Java VisualVM, который, как я полагаю, является виртуальной машиной, так что нет никакого программного обеспечения для разработки Java.Итак… Я скачал Eclipse для Mac с веб-сайта Стэнфорда и получил Eclipse IDE для разработчиков Java Версия: Helios Service Release 2 и попытался запустить простую программу, включающую инструкцию import.
  2. import acm.program. *;оператор создает проблему для компилятора: «acm не может быть решен». После изучения этого, я думаю, проблема в том, что я не скачал архив acm.jar и добавил это к моему пути сборки. Почему это еще не сделано для меня,как часть Eclipse, я понятия не имею. Думаю, все должно быть сложно.
  3. Итак, я скачал архив acm.jar, и он находится в моей папке загрузки. Я попытался дважды щелкнуть по нему, и, к счастью, Mac выиграл »Я попытался перетащить его в исходную папку в Eclipse, а затем добавить его в путь сборки. Оказавшись в пути сборки, Eclipse сообщает мне, что файл jar отсутствует. Поэтому я удалил его из пути сборки и вместо этого из Eclipse.Перейдите в «Свойства» / «Путь сборки Java» / «Библиотеки» / «Добавить внешние JARS…» и перейдите в папку «Мои загрузки», где папка acm.jar предназначена для выбора JAR-файла. Однако Eclipse, похоже, ищет .jar; ZIP-файл, которого нет, потому что мой Mac уже распаковал папку, поэтому я изменил открытое окноndow искать все файлы (. ), и теперь я вижу отдельные файлы .java, которых слишком много, чтобы добавить к пути сборки по отдельности.
  4. Итак, вернитесь на ПК, загрузите zip-файл acm.jar, скопируйте его на Mac в разархивированном виде и снова добавьте в путь сборки в виде zip-файла.Это устранило ошибку компилятора, и моя простая программа выполнялась на Mac!
  5. Далее я попробую свою программу с помощью метода init (), чтобы проверить, работает ли это сейчас.Нету.Та же проблема на Mac.Этот метод init вызывает следующую ошибку: несколько маркеров в этой строке

    • переопределяет acm.program.Program.init
    • Невозможно переопределить конечный метод из программы

    public void init () {canvas = new HangmanCanvas ();добавить (холст);}

  6. Это должно быть так сложно, или я что-то упустил?

Ответы [ 2 ]

0 голосов
/ 25 февраля 2012

Нет причин, по которым Java для Mac будет лучше, чем Java для ПК. Язык и инструменты должны работать одинаково ... при условии, что вы используете одинаковые версии языка и аналогичные версии инструментов.

Ваша проблема с init не имеет ничего общего с ПК против Mac. Так что не тратьте свое время на переключение платформ, чтобы попытаться это исправить. Вам нужно выяснить, что за

На первый взгляд, компилятор / IDE говорит вам правду. Java не позволит вам переопределить метод final. Фактически весь смысл объявления метода как final состоит в предотвращении перегрузки.

Однако это не имеет смысла. Согласно документации, которую я нашел здесь , метод acm.program.Program.init() - это , предназначенный для переопределения . Так почему же это не позволит?

Я подозреваю, что причиной ваших проблем является то, что вы скачали или получили копию файла JAR, с которым кто-то связался. Кто-то изменил метод так, чтобы он был final (по некоторым причинам лучше всего себе известен), скомпилировал его и выложил для загрузки людьми. Google не всегда твой друг ...

Итак, я предлагаю вам просмотреть все раздаточные материалы и предоставленные файлы, чтобы найти либо предоставленную копию JAR, либо инструкции по ГДЕ для ее загрузки. Затем замените копию JAR, которую вы используете в настоящее время, рекомендуемой.


Почему это еще не сделано для меня, как часть Затмения, я понятия не имею. Я думаю, все должно быть сложно.

Как Eclipse должен знать, что это за "acm"? Какая версия вам нужна? Где его скачать?

0 голосов
/ 25 февраля 2012
  1. Обычно на компьютерах Mac установлен весь JDK. Затмение это хорошо, хотя.
  2. Этот пакет "acm" не установлен, потому что это не стандартная вещь; это все равно, что спросить, почему в вашем холодильнике нет спаржи.
  3. Этот последний диалог был правильным; Вам нужен оригинальный файл JAR. Попробуйте еще раз, щелкните правой кнопкой мыши и выберите ссылку «Сохранить как ...», чтобы сохранить файл из браузера.
  4. См. 3. Мне особенно забавно, что кто-нибудь использовал бы компьютер с Windows, чтобы компенсировать недостатки Mac; на самом деле Mac бесконечно более гибкий и мощный.
  5. Если вы получили сообщение с жалобой на то, что пытаетесь переопределить метод final, то вы действительно пытаетесь сделать что-то не так; final на самом деле означает «Вы не можете переопределить это». Возможно, вы не полностью поняли инструкции по выполнению задания.
  6. Становится лучше, я обещаю. Только не забудьте использовать каждое из этих раздражений в качестве учебного опыта.
...