-3

我正在从 Javascript(大学原因)转换为 Java,似乎无法理解数组/对象分配的逻辑。我想要实现的目标是在 Pascal“记录”中使用不同的变量。然后调用主类并创建几个实例。这是我的简单结构,例如:

class shoppingCart {
    public static void main(String[] args){
        // Define objects
        Product[] products = new Product[3];        

        // Fill in products
        products[0] = {
            title: "Product 1",
            code: "AB432",
            price: 13.60,
            quantity: "dozen"
        }                    
    }
}

class Product {
    public String title;
    public String code;
    public float price;
    public String quantity;
}

有人可以指出如何创建“记录”以及如何为它们分配值的正确方法吗?在我声明变量(数组)之前,我在 Java 中遇到了同样的问题,后来又尝试了

someArray = {23,2,32,523}

编译器给我错误...

4

3 回答 3

2

您需要创建一个对象......理想情况下不使用公共字段。例如,如果你给你的Product类一个带有四个值的构造函数,你可以使用:

Product[] products = 
{
    new Product("Product 1", "AB432", 13.6, "dozen"),
    new Procuct( /* etc */ )
};

另请注意,您不应该使用float来存储价格。改用BigDecimal,或整数美分/便士/随便什么。

于 2012-11-20T10:07:51.127 回答
1

首先向您的产品类添加一个构造函数。

class Product {
    public String title;
    public String code;
    public float price;
    public String quantity;

   public Product(String title, String code, float price, String quantity){
      this.title = title;
      this.code = code;
      this.price = price;
      this.quantity = quantity;
   }
}

然后将产品实例添加到您的数组中

class shoppingCart {
    public static void main(String[] args){
        // Define objects
        Product[] products = new Product[3];        

        // Fill in products
        products[0] = new Product("Product 1", "AB432", 13.60, "dozen");
        //repeat for other products.
    }
}
于 2012-11-20T10:10:14.183 回答
0

约定是 Java 是所谓的 Bean (en.wikipedia.org/wiki/JavaBeans),它具有私有成员变量以及 getter 和 setter 方法。你会初始化它像......

Product product = new Product();
product.setTitle("Product 1");
product.setCode("AB432");
product.setPrice(13.60);
product.setQuantity("dozen");
products[0] = product;

此外,您只能在第一次声明时初始化这样的数组......

int[] someArray = {23,2,32,523};
于 2012-11-20T10:12:08.470 回答