0

我是 java 新手,所以我想这是一个非常简单的问题,但我找不到答案

我正在创建一个非常简单的游戏,但是当我开始编译我的主要游戏时,我得到了

 BattleShipGame.java:19: error: cannot find symbol
 BattleShip ship = new BattleShip();
        ^
 symbol:   class BattleShip
 location: class BattleShipGame

 BattleShipGame.java:19: error: cannot find symbol
 BattleShip ship = new BattleShip();
                          ^
  symbol:   class BattleShip
  location: class BattleShipGame
  2 errors

所以当我去主要创建我的对象时,它找不到符号并创建对象

我的战舰等级:

public class BattleShip {

//delcare an int arry to hold the location of the cells 
private int[] location;

//setter for location 
public void setLocation(int[] shipLocation){
    location = shipLocation;
}

public String checkGuess(String[] g){

//return the message
return message;
}

}

主要方法:

public class BattleShipGame {

/**
 * @param args the command line arguments
 */
public static void main(String[] args) {

    //create a battle ship object 
    BattleShip ship = new BattleShip();
    //hard code location of ship
    int[] ShipLocation = {4,5,6};
    //set the location of the object
    ship.setLocation(ShipLocation);
    //take the users guess from command line
    String[] guess = {args[0], args[1], args[2]};
    //take message returned from method
    String message = ship.checkGuess(guess);
    // print out the message
    System.out.println(message);

    }
 }

如果有人可以让我知道为什么我不能创建一个对象?

我在main之前编译了战舰类这些都在同一个包中我还需要导入吗?

4

6 回答 6

1

你需要确定两件事:

  1. 你应该BattleShip先编译你的类,然后在你的BattleShipGame游戏中使用它
  2. 如果BattleShipBattleShipGame类不在同一个类中,package那么您需要使用 import 语句BattleShip在您的类中导入该类。BattleShipGame
于 2013-08-23T10:55:13.777 回答
0

错过了进口。

   //imports missing here

public class BattleShipGame {
    public static void main(String[] args) {

        //create a battle ship object 
        BattleShip ship = new BattleShip();   

要使用该对象,您必须import

我建议您使用可以纠正编译时错误并节省大量时间的 IDE

于 2013-08-23T10:54:39.117 回答
0

你忘记import com.your.package.BattleShipBattleShipGame.java

使用例如 Eclipse 或任何其他 IDE,它将为您管理导入。在 Eclipse 中,快捷方式是Ctrl++ ShiftO

于 2013-08-23T10:55:47.043 回答
0

您必须将这两个文件放在一个目录中。假设您将这两个文件放在不同的目录中,比如说GameMain. 然后在主文件中添加这一行开始import Game.BattleShip;并在第一行的BattleShip类文件中添加这一行package Game;

这将解决您的问题。

于 2013-08-23T10:56:19.757 回答
0

在同一目录中编写展位类或在BattleShipGame类中使用导入语句

import com.test.BattleShip;

public class BattleShipGame {
   public static void main(String[] args) {
     BattleShip ship = new BattleShip();
   }
}
于 2013-08-23T11:15:26.893 回答
0

我不太确定出了什么问题我将文件从netbeans创建的项目中移出,一切正常,不过感谢您的回答

于 2013-08-23T11:21:27.963 回答