2016-06-08 25 views
-1

希望找到一個解決方案之前,我把我的頭通過我的顯示器。 我想要做的是使用布爾值來實現銷售功能。 基本上我希望它不出售股票,如果有小於0(打印錯誤消息) 如果有我想要+1 numSold和-1 numInStock。 當我嘗試即時得到一個錯誤 「類項目的方法sellCopy不能應用於給定類型,需要布爾,發現沒有參數的原因實際的和正式的參數列表的長度不同」需要布爾值發現沒有參數

public abstract class Item 
{ 
private String name; 
private double price; 
private int numInStock; 
private int numSold; 
public Item(String inName, double inPrice) 
{ 
    name = inName; 
    price = inPrice; 
    numInStock = 0; 
    numSold = 0; 
} 

public String getName() 
{ 
    return name; 
} 

public double getPrice() 
{ 
    return price; 
} 

public int getNuminStock() 
{ 
    return numInStock; 
} 

public int getNumSold() 
{ 
    return numSold; 
} 

public void receiveStock(int amount) 
{ 
    numInStock = numInStock + amount; 
} 

public boolean sellCopy(boolean sellCopy) 
{ 
    if (numInStock <= 0) 
    { 
     sellCopy = true; 
     numSold = numSold +1; 
     numInStock = numInStock -1; 
     return true; 
    } 
    else 
    { 
     sellCopy = false; 
     System.out.println("Stock unavalable"); 
     return false; 
    } 
} 

}

public class Game extends Item 
{ 
private int MaxPlayers; 

public Game(String inName, int inMaxPlayers, double inPrice) 
{ 
    super(inName, inPrice); 
    MaxPlayers = inMaxPlayers; 
} 

public String toString() 
{ 
return " Game " + super.toString() + " Maximum Player: " + MaxPlayers + "\n"; 
    } 
    import java.util.*; 
public class Shop 
{ 
    private ArrayList<Item> items = new ArrayList<Item>(); 

    public boolean addItem(Item newItem) 
    { 
    if (!findItem(newItem.getName())) 
    { 
     items.add(newItem); 
     return true; 
    } 
    else 
    { 
    System.out.println(" Error - an item with that name "  +newItem.getName() + " already exists"); 
    return false; 
    } 
    } 

    public boolean findItem(String searchName) 
    { 
    for (Item nextItem : items) 
    { 
     //might be searchName// 
     if (searchName.equals(nextItem.getName())) 
     { 
      System.out.println(nextItem); 
      return true; 
     } 
    } 
    return false; 
    } 

public void listItems() 
    { 
    System.out.println("The shop contains the following items***\n"); 
    for (Item nextItem : items) 
    { 
     System.out.println(nextItem); 
    } 
    } 


    public void calcTotalSales() 
    { 
    double total = 0;  
    for (Item nextItem : items) 
    { 
     total += nextItem.getNumSold() * nextItem.getPrice(); 
    } 
    System.out.println("****The total number sold is worth $" + total); 
    System.out.println("****"); 
    } 

    } 

    public class test 
    { 
    public static void main (String args[]) 
    { 
    //create the shop 
    Shop myShop = new Shop(); 



    //create a Game and add it to the shop 
    Game game1 = new Game("Chess", 2, 39.95); 
    myShop.addItem(game1); 

    //order and get stock 
    game1.receiveStock(5); 

    //sell some items 
    game1.sellCopy(); 
    //the bastard right here// 

    //print information about shop 
    myShop.calcTotalSales(); 

    //test error conditions 
    Game game2 = new Game("Chess", 2, 39.95); 
    myShop.addItem(game2); //should fail as a Chess item is already in the shop 

    //eg2.sellCopy(); 

    } 
    } 

回答

-1

如果你在看代碼,

game1.sellCopy(); 

這sellCopy方法需要一個布爾值。你需要通過它。

game1.sellCopy(true);// for example. Pass your actual value. 
+1

謝謝,grrr血腥老師寫的測試代碼 – Will