2012-11-20 137 views
-3

我正在从Javascript(大学的原因)转换为Java,似乎无法回到数组/对象分配的逻辑。 我想要实现的东西就是像过去一样在Pascal中使用不同变量的“记录”。然后在主类中调用并创建少量的实例。这是结构简单我有,例如:Java将值分配给数组/对象

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} 

和编译器给我的错误...

+0

什么是你的问题? –

+0

通过尝试提供[SSCCE](http://sscce.org/)expample,您将学到很多东西。 – jlordo

回答

2

你需要创建一个对象......理想没有使用公共领域。例如,如果你给你Product类的构造函数取四个值,你可以使用:

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

另外请注意,你不应该使用float存储价格。改为使用BigDecimal,或使用整数美分/便士/无论如何。

+0

坦克你的答案,没有考虑这样做。很好,很干净。但严重不明白为什么这个问题有2倒票... – Tom

+0

@Tom:虽然没有downvotes是我的,“编译器给我错误”是不是一个好兆头。任何时候你有错误信息,你都应该把它包含在问题中。 –

0

首先为您的产品类添加构造函数。

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. 
    } 
} 
0

的约定是Java是所谓的豆(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};