我从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}
和编译器给我错误...
答案 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};