-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クラスに 4 つの値を取るコンストラクターを指定する場合は、次を使用できます。

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 に答える