Java为数组/对象分配值

时间:2012-11-20 10:05:00

标签: java arrays object

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

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}

和编译器给我错误...

3 个答案:

答案 0 :(得分:2)

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

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

另请注意,您不应使用float来存储价格。使用BigDecimal代替,或整数分仙/便士/无论如何。

答案 1 :(得分: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.
    }
}

答案 2 :(得分:0)

Java的惯例就是所谓的Beans(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};