用Java创建列表表
我正试图用Java创建一个列表,如下所示。也许我对OOP和Java很幼稚,所以我无法解决它 我需要创建一个下表用Java创建列表表,java,Java,我正试图用Java创建一个列表,如下所示。也许我对OOP和Java很幼稚,所以我无法解决它 我需要创建一个下表 Character Count Price A 1 2 B 1 12 C 1 1.25 D 1 0.15 A 4 7 C 6 6 我创建了一个类,如下所示: class ProductList { privat
Character Count Price
A 1 2
B 1 12
C 1 1.25
D 1 0.15
A 4 7
C 6 6
我创建了一个类,如下所示:
class ProductList {
private char ProductName;
private double Price;
private int Count;
public char getProductName() {
return ProductName;
}
public void setProductName(char productName) {
ProductName = productName;
}
public double getPrice() {
return Price;
}
public void setPrice(double price) {
Price = price;
}
public int getCount() {
return Count;
}
public void setCount(int count) {
Count = count;
}
}
然后是我的主类,它创建了如上所述的产品表列表
public class ProductEntryList {
public static void main(String[] args) {
ProductList[] entry = new ProductList[6];
//Product Entry for A
entry[0].setProductName('A');
entry[0].setCount(1);
entry[0].setPrice(2);
//Similarly for other entries of product
for(int loop = 0;loop<entry.length;loop++) {
System.out.print(entry[loop].getProductName()+" ");
System.out.print(entry[loop].getCount()+" ");
System.out.print(entry[loop].getPrice()+"\n");
}
}
}
这将有助于任何输入。代码
ProductList[] entry = new ProductList[6];
创建类型为ProductList
的新数组,默认情况下该数组初始化为null
。在对它们执行点操作之前,必须将它们初始化为某些内容,例如,entry[0]=newproductlist()代码>
另一方面,请注意Java的命名约定——类通常是大写的,变量使用camelCasing。代码
ProductList[] entry = new ProductList[6];
创建类型为ProductList
的新数组,默认情况下该数组初始化为null
。在对它们执行点操作之前,必须将它们初始化为某些内容,例如,entry[0]=newproductlist()代码>
另一方面,请注意Java的命名约定-类通常是大写的,变量使用camelCasing。Nullpointerexception是在null引用上使用点(.)运算符时抛出的
正如我所看到的,在你主要方法的第一行
ProductList[] entry = new ProductList[6];
您只是初始化数组,而不是初始化数组中的产品列表项。因此数组包含空条目
您需要在该行之后添加以下代码:
for(int i=0;i<entry.size();i++)
{
entry[i]=new ProductList();
}
for(int i=0;iNullpointerexception是在对null引用使用点(.)运算符时引发的
正如我所看到的,在你主要方法的第一行
ProductList[] entry = new ProductList[6];
您只是初始化数组,而不是初始化数组中的产品列表项。因此数组包含空项
您需要在该行之后添加以下代码:
for(int i=0;i<entry.size();i++)
{
entry[i]=new ProductList();
}
for(int i=0;i@Makoto完全正确。您正在初始化一个可以容纳6个元素的字段。默认情况下,所有元素都为null。在主方法中,您必须初始化数组的ProductList:
entry[0] = new ProductList();
entry[0].setProductName('A');
entry[0].setCount(1);
entry[0].setPrice(2);
其他对象仍将为空。但如果数组中只有一个对象,则仍然会失败。for循环将遍历所有字段,第一个字段应成功,但另一个字段(为空)则尝试访问空对象。因此,再初始化5个ProductList对象,并将其添加到数组中,并且应能正常工作:)@Makoto完全正确。您正在初始化一个可以容纳6个元素的字段。默认情况下,所有元素都为空。在主方法中,您必须初始化数组的ProductList:
entry[0] = new ProductList();
entry[0].setProductName('A');
entry[0].setCount(1);
entry[0].setPrice(2);
其他对象仍将为空。但如果数组中只有一个对象,则仍然会失败。for循环将遍历所有字段,第一个字段应成功,但另一个字段(为空)则尝试访问空对象。因此,再初始化5个ProductList对象,并将其添加到数组中,并且应能正常工作:)NullPointerException
在尝试取消引用null
引用时引发,例如:Object foo=null;foo.toString()
。使用调试器来遍历代码并找出什么是NULL。@ USE1141584:C++是完全不同的编程语言。Java隐式地也是OOP。用C++标记java问题来吸引“OOP专家”,因此没有意义。<代码> > Null PoExtExeals</C> >当您试图取消<代码> null < /Cord>引用时,例如:<代码>对象Foo= NULL;foo.toString()
。使用调试器来遍历代码并找出什么是NULL。@ USE1141584:C++是完全不同的编程语言。Java隐式地也是OOP。用C++标记java问题来吸引“OOP专家”,这是没有意义的。