我想创建一个类的实例,其中包含一个类成员数组,其中数组在初始化时定义为长度。我编写的代码不包含任何预编译错误,但在运行后返回nullPointerException。我希望能够通过输入storeA.products [productnumber]来获取类storeA的产品。(产品变量),这可能吗?
package tinc2;
public class FirstProgram {
public static void main(String[] args) {
store storeA = new store();
storeA.name = "Walmart";
storeA.products = new store.product[3];
storeA.products[0].name = "Horses";
System.out.println(storeA.products[0].name);
}
public static class store{
String name;
product products[];
static class product{
String name;
int quantity;
double price;
}
}
}
答案 0 :(得分:1)
转到
public static void main(String[] args) {
store storeA = new store();
storeA.name = "Walmart";
storeA.products = new store.product[3];
storeA.products[0] = new store.product();
storeA.products[0].name = "Horses";
System.out.println(storeA.products[0].name);
}
代替。
此外,您应将这些类放在单独的文件中。
您应该遵循Java中的命名约定,例如Store
代替store
。
你应该使用getter和setter。
如果可能,我会避免使用static
。
答案 1 :(得分:0)
您不应该实例化静态类。您的Product类不应定义为static。我建议:
package tinc2;
public class FirstProgram {
public static void main(String[] args) {
Store.name = "Walmart";
Store.products = new Product[1];
Store.products[0] = new Product();
Store.products[0].name = "Horses";
System.out.println(Store.products[0].name);
}
public static class Store{
String name;
Product products[];
}
public class Product{
String name;
int quantity;
double price;
}
}