2013-08-23 60 views
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); 

    } 
} 

如果有人可以讓我知道爲什麼我不能創建一個對象?

我在主編前編制了戰列艦級別 這兩個都是在同一個包裏還要導入嗎?

+0

你是如何編譯這個? –

+0

你有導入戰艦班嗎? –

+0

在BattleShipGame類中導入BattleShip類。 –

回答

1

你需要確保兩件事的IDE :

  1. 你應該編譯BattleShip類先在你BattleShipGame遊戲中使用它之前
  2. 如果BattleShipBattleShipGame類不在同一package那麼您需要使用import語句在您的BattleShipGame類中導入BattleShip類。
+1

鑑於我們所看到的,我懷疑沒有編制「BattleShip」是當前的問題。 – chrylis

0

進口錯過。

//imports missing here 

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

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

使用該對象,你必須import

我建議你使用的是糾正你的編譯時錯誤,並節省了大量的時間

0

您忘記了import com.your.package.BattleShipBattleShipGame.java

使用例如Eclipse或任何其他IDE,它將爲您管理導入。在Eclipse中,快捷鍵是Ctrl + Shift + O

0

您必須將兩個文件放在一個目錄中。假設您將兩個文件放在不同的目錄中,如GameMain。然後在主文件中添加此行開始import Game.BattleShip;並在BattleShip類文件中添加此行第一行package Game;

這將解決您的問題。

+1

不建議將通配符與Java導入語句配合使用。 [參考。](http://stackoverflow.com/questions/147454/why-is-using-a-wild-card-with-a-java-import-statement-bad) –

+0

@AdamStelmaszczyk感謝您的鏈接。欣賞它。 :) –

0

寫展位班在同一目錄或使用import語句在BattleShipGame

import com.test.BattleShip; 

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

我不是很確定什麼是錯的,我搬到了文件從創建的NetBeans項目和它的所有工作很好,謝謝您答案雖然