2015-05-13 2 views
2

У меня есть два класса здесь, которые я пытаюсь связать вместе, но не могу заставить его работать. Один из них называется smokers, один называется Pair.Связывание двух классов вместе

Мой компилятор извергает ошибки, говоря, что он не может найти символ pair.

Я разместил их в одной упаковке. Не уверен, почему он не регистрирует его.

package smokerz; 

import java.util.*; 


public class smokers{ 

    //initialise 
    //create a node inner class which has the nodes position 
    //make 2D array of nodes 
    // 
    public static void main(String[]args){ 
     initialise(); 

    } 

    public static void initialise(){ 
     List<Pair<Integer, Integer>> pairedCoordinates = new ArrayList<Pair<Integer, Integer>>(); 
     Scanner scan = new Scanner(System.in); 
     int line = 0; 

     //for board boundaries 
     int boardX; 
     int boardY; 
     while (scan.hasNextLine()){ 
      //means we're reading the board coordinates 
      if (line == 0){ 
       boardX = scan.nextInt(); 
       boardY = scan.nextInt(); 
      } 
      int nonSmokersPosX; 
      int nonSmokersPosY; 
      nonSmokersPosX = scan.nextInt(); 
      nonSmokersPosY = scan.nextInt(); 
      pairedCoordinates.add(new Pair(nonSmokersPosX, nonSmokersPosY)); 
      line++; 
     } 


package smokerz; 

public class Pair<X, Y>{ 

    private X xcoord; 
    private Y ycoord; 

    public Pair(X xcoord, Y ycoord){ 
     this.xcoord = xcoord; 
     this.ycoord = ycoord; 

    } 
    public X getXCoord(){ 
     return xcoord; 
    } 

    public Y getYCoord(){ 
     return ycoord; 
    } 
    public void setXCoord(X x){ 
     this.xcoord = x; 
    } 
    public void setYCoord(Y y){ 
     this.ycoord = y; 
    } 
} 
+1

Пожалуйста, разместите трассировку стека. Использование таких терминов, как «linking», похоже на то, что вы используете C++ (ах ... старые добрые времена). –

+0

smokers.java:19: не может найти символ символ: класс Pair местоположение: класс smokerz.smokers \t \t List > pairedCoordinates = новый ArrayList >(); \t \t^ курильщики.java: 19: не найти символ символ: класс пара местоположение: класс smokerz.smokers \t \t Список > pairedCoordinates = new ArrayList >(); \t \t^ smokers.java:36: не может найти символ символ: класс Pair местоположение: класс smokerz.smokers \t pairedCoordinates.add (новая пара (nonSmokersPosX, nonSmokersPosY)); –

+0

Я хочу создать экземпляр моего класса в классе моих курильщиков. –

ответ

1

Сильное предложение: назовите свой первый класс «Курильщики» (столица «S»).

В: Действительно ли была создана «Pair.java»? Я подозреваю, что нет.

Пожалуйста, попробуйте компилировать «Пара» и, пожалуйста, обновите сообщение с сообщением об ошибке (если применимо).

================================================================================================================================= ========

ДОПОЛНЕНИЕ:

Это только мне пришло в голову, что происходит неправильно - вы используете пакеты, но вы забываете принять их во внимание при компиляции (хорошо!) из командной строки (что-то, что IDE сделает для вас автоматически).

Пожалуйста, сделайте это:

1) mkdir smokerz # Create a subdirectory for your Java package

2) cp smokers.java Pair.java smokerz # Copy your source to "smokerz"

3) javac smokerz\Pair.java # Compile your two files in the directory *above*

javac smokerz\smokers.java

4) запустить программу

java smokerz.smokers

Посмотрите здесь для более подробной информации:

http://www.jarticles.com/package/package_eng.html

+0

Скомпилировано да. –

+0

Содержит класс пара. Когда я компилирую класс Smokers, он содержит сообщения об ошибках в предыдущем комментарии. –

0

Это могло быть потому, что у вас есть Инициализировать() как статические. Если это не обязательно статично, сделайте статику и попробуйте это.

+0

Это не должно иметь значения. –

0

Для того, чтобы закончить код, классу курильщиков требуется по крайней мере два} в конце его.

Пакет для пары не нужен; после этого.

Возможно, разделение между файлами в вашем коде не уточняется в вопросе.

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