主要方法不会编译找不到符号来创建对象

时间:2013-08-23 10:51:08

标签: java

我是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

所以当我在main中创建我的对象时,它无法找到符号并创建对象

我的战船类:

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

    }
 }

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

我在主战线之前编制了战舰类 这些都在同一个包中我还要导入吗?

6 个答案:

答案 0 :(得分:1)

你需要确定两件事:

  1. BattleShip游戏
  2. 中使用之前,您应首先编译BattleShipGame课程
  3. 如果BattleShipBattleShipGame类不在同一个package中,那么您需要使用import语句导入BattleShip类中的BattleShipGame

答案 1 :(得分:0)

错过了进口货物。

   //imports missing here

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

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

要使用该对象,您必须import

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

答案 2 :(得分:0)

您忘记了import com.your.package.BattleShip中的BattleShipGame.java

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

答案 3 :(得分:0)

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

中的BattleShip类文件中添加此行

这将解决您的问题。

答案 4 :(得分:0)

在同一目录中编写booth类或在BattleShipGame

中使用import语句
import com.test.BattleShip;

public class BattleShipGame {
   public static void main(String[] args) {
     BattleShip ship = new BattleShip();
   }
}

答案 5 :(得分:0)

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