有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

区分类的不同实例的第一个Java项目

这是我构建的第一个Java应用程序,我已经成功地为产品创建了一个类,但是现在我需要声明4个不同的产品实例,这样我就可以在代码的不同部分访问每个单独的产品。我目前拥有的代码如下所示,但我似乎只能访问我创建的最后一个产品:

   Products = new Products(1,2.50,"Coke",15);

   Products = new Products(2,1.50,"Crisps",5);

   Products = new Products(3,2.00,"Juice",2);

   Products = new Products(4,2.50,"Chocolate",0);

   System.out.println(Products.getProductID()+ " " + Products.getProductName());

是否有某种方式可以说“产品ID等于”或为每个产品实例指定一个单独的名称?如果有人问过这个问题,我在相关的帖子中找了一下,但是找不到与Java相关的任何东西。 下面的代码显示了我的产品类别:

public class Products {

 private int ProductID;
 private double ProductPrice;
 private String ProductName;
 private int ProductStock;

 public Products(int ID, double Price,String PName,int Stock){
  ProductID = ID;
  ProductPrice = Price;
  ProductName = PName;
  ProductStock = Stock;
}

 public void setProductID(int ID){
  ProductID = ID;
 }
 public void setProductPrice(double Price){
  ProductPrice = Price;
 }
 public void setProductName(String PName){
  ProductName = PName;
 }
 public void setProductStock(int Stock){
  ProductStock = Stock;
 }

 public int getProductID(){
  return ProductID;
 }
 public double getProductPrice(){
  return ProductPrice;
 }
 public String getProductName(){
  return ProductName;
 }
 public int getProductStock(){
  return ProductStock;
 }

提前感谢您的帮助


共 (2) 个答案

  1. # 1 楼答案

    如果变量不是(您没有显示变量名…),则应将其命名为不同的变量或者进行某种收集(ArrayList、List等)。 例如

    Products coke = new Products(1,2.50,"Coke",15);
    Products crisps = new Products(2,1.50,"Crisps",5);
    Products juice = new Products(3,2.00,"Juice",2);
    Products chocolate = new Products(4,2.50,"Chocolate",0);
    
    System.out.println(coke.getProductID()+ " " + juice.getProductName());
    

    例2

    HashMap<Integer, Products> products = new HashMap<Integer, Products>();
    products.put(products.size(), coke);
    products.put(products.size(), crisps);
    products.put(products.size(), juice);
    products.put(products.size(), chocolate);
    
    System.out.println(products.get(1).getProductID() + " " + products.get(1).getProductName());
    
  2. # 2 楼答案

    可以使用映射按唯一id进行查找

    Map<Integer, Product> productById = new HashMap<>();
    
    productById.put(1, product1);
    productById.put(2, product2);
    productById.put(3, product3);
    productById.put(4, product4);
    
    // to perform a lookup "where product ID is equal to id"
    Product p = productById.get(id);