2012-11-20 181 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};