2017-02-17 1 views
-2

* (Le duplicata supposé de cette question ne m'aide pas vraiment) J'essaye de compiler ce programme plutôt simple qui affiche et déplace une empreinte pour démontrer le mouvement. C'est ce que je travaille avec d'ores et déjà:(Java) Erreur avec les variables d'instance lors de la compilation

// 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); 
    } 
} 

Cependant, lorsque je tente de compiler le programme que je reçois les erreurs:

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 

Je suis sûr qu'il est une solution simple, mais Je suis nouveau à Java et une explication de pourquoi je reçois ce message d'erreur serait très appréciée.

+0

La question qui est un doublon ne m'aide pas vraiment à comprendre pourquoi je reçois cette erreur. Quelqu'un voudrait-il me fournir une explication plus précise? –

Répondre

0

Basé sur la sortie d'erreur de compilation le problème est la classe Foot ne peut pas trouver la classe CoordinateSystem. Est-ce que la classe CoordinateSystem est dans le même paquet que Foot? Sinon, vous devez ajouter une instruction d'importation: import your.package.name.CoordinateSystem. Vous pouvez également vérifier si CoordinateSystem dispose des modificateurs d'accès appropriés (c'est-à-dire public?).

Est-ce que CoordinateSystem est dans la même bibliothèque/jar? Vous devrez peut-être vous assurer que votre classpath est correctement configuré.

Le problème aussi pourrait être sur le constructeur de CoordinateSystem. Le constructeur appelé existe-t-il? At-il la visibilité appropriée pour Foot pour y accéder?

+0

Merci pour les conseils que j'ai accidentellement mis Foot and CoordinateSystem dans différents répertoires! Cependant, maintenant je reçois un message d'erreur me disant que la méthode Main n'est pas trouvée dans la classe Foot, des suggestions pour cela? –

+0

Quelque part dans votre configuration vous avez déclaré que votre méthode Main est dans la classe 'Foot'. La méthode Main étant: 'public void main (String [] args)'. En fonction du code que vous avez posté, je ne vois pas de méthode Main dans 'Foot'. Cette configuration, une fois déployée, figurera dans le fichier manifeste du fichier jar. Si vous lancez cette application à partir de la ligne de commande et qu'elle n'est pas empaquetée dans un fichier jar, vous dirigez java vers le mauvais point d'entrée (classe avec la méthode Main). Cependant, si vous utilisez un IDE, il se peut qu'il soit configuré pour exécuter votre projet de manière incorrecte. – Slaw

+0

Ok, comment pourrais-je emballer ce fichier dans un pot? –