Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用Java创建列表表_Java - Fatal编程技术网

用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

我正试图用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 {
    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专家”,这是没有意义的。