2017-02-17 3 views
-2

* (Также предполагаемый дубликат этого вопроса мне не очень помогает) Я пытаюсь скомпилировать эту довольно простую программу, которая отображает и перемещает след, чтобы продемонстрировать движение. Это то, что я работаю с как сейчас:(Java) Ошибка с переменными экземпляра при компиляции

// Represents a foot, used for displaying walking creatures. 

import java.awt.Image; 
import java.awt.Graphics; 

public class Foot 
{ 
    private Image picture; 
    private CoordinateSystem coordinates; 

    // Constructor 
    public Foot(int x, int y, Image pic) 
    { 
    picture = pic; 
    coordinates = new CoordinateSystem(x, y, pic); 
    } 

    // Moves this foot forward by distance pixels 
    // (or backward if distance < 0). 
    public void moveForward(int distance) 
    { 
    coordinates.shift(distance, 0); 
    } 

    // Moves this foot sideways by distance pixels 
    // (to the right if distance > 0 or to the left 
    // if distance < 0). 
    public void moveSideways(int distance) 
    { 
    coordinates.shift(0, distance); 
    } 

    // Turns this foot (clockwise for degrees > 0). 
    public void turn(int degrees) 
    { 
    coordinates.rotate(Math.PI * degrees/180.0); 
    } 

    // Draws this foot in the appropriate coordinate system. 
    public void draw(Graphics g) 
    { 
    coordinates.drawImage(g, picture); 
    } 
} 

Однако, когда я пытаюсь скомпилировать программу я получаю ошибки:

cannot find symbol 
    private CoordinateSystem coordinates; 
     ^
     symbol: class CoordinateSystem 
     location: class Foot 
    Foot.java:15: error: cannot find symbol 
     coordinates = new CoordinateSystem(x, y, pic); 
        ^
     symbol: class CoordinateSystem 
    location: class Foot 
2 errors 

Я уверен, что это легко исправить, но Я новичок в java, и объяснение того, почему я получаю это сообщение об ошибке, будет высоко оценено.

+0

Вопрос, который является дубликатом, на самом деле не помогает мне понять, почему я получаю эту ошибку. Будет ли кто-то умом давать мне более конкретное объяснение? –

ответ

0

Основываясь на выходе ошибки компиляции, проблема заключается в классе Foot не может найти класс CoordinateSystem. Является ли класс CoordinateSystem в том же пакете, что и Foot? Если нет, вам нужно добавить оператор импорта: import your.package.name.CoordinateSystem. Вы также можете проверить, есть ли у CoordinateSystem соответствующие модификаторы доступа (т. Е. Публично?).

Является ли CoordinateSystem в той же библиотеке/банке? Возможно, вам нужно будет убедиться, что ваш путь к классам настроен правильно.

Проблема также может о конструкторе CoordinateSystem. Существует ли вызываемый конструктор? Имеет ли он соответствующую видимость для Foot для доступа к нему?

+0

Спасибо за совет, я случайно помещаю Foot и CoordinateSystem в разные каталоги! Однако теперь я получаю сообщение об ошибке, сообщающее мне, что метод Main не найден в классе Foot, любые предложения для этого? –

+0

Где-то в вашей конфигурации вы заявили, что основной метод находится в классе 'Foot'. Основной метод: public public void main (String [] args) '. На основе кода, который вы опубликовали, я не вижу метода Main в 'Foot'. Эта конфигурация при развертывании будет находиться в файле манифеста jar. Если вы запускаете это приложение из командной строки и не упакованы в банку, то вы направляете java в неправильную точку входа (класс с помощью метода Main). Однако, если вы используете среду IDE, она может быть настроена неправильно, чтобы запустить проект. – Slaw

+0

Хорошо, как я могу упаковать этот файл в банку? –

Смежные вопросы