Java 通过类自己的主方法调用类的构造函数并初始化变量

Java 通过类自己的主方法调用类的构造函数并初始化变量,java,exception,exception-handling,nullpointerexception,Java,Exception,Exception Handling,Nullpointerexception,我是Java新手,刚开始做朋友发给我的一些练习。该练习要求我们为多项式的项创建一个类项,另一个类项为多项式本身,其中多项式表示为固定大小的数组,并提供其字段的值。我编写了以下代码: class Term { int coeff; int exponent; } public class Polynomial { static int size=5; Term[] poly; public Polynomial() { po

我是Java新手,刚开始做朋友发给我的一些练习。该练习要求我们为多项式的项创建一个类项,另一个类项为多项式本身,其中多项式表示为固定大小的数组,并提供其字段的值。我编写了以下代码:

class Term
{
    int coeff;
    int exponent;
}

public class Polynomial {

    static int size=5;  
    Term[] poly;

    public Polynomial()
    {
        poly = new Term[size];

        for(int i=0;i<size;i++)
        {
            poly[i].coeff=0;
            poly[i].exponent=0;
        }
    }

    public static void main(String args[]) throws Exception
    {
        Polynomial p = new Polynomial();
    }
}
类术语
{
内因系数;
整数指数;
}
公共类多项式{
静态整数大小=5;
术语[]聚;
公共多项式()
{
poly=新术语[尺寸];

对于(int i=0;i对象数组的数组元素,默认情况下为
null
。在尝试访问它们的字段之前,请确保它们已初始化

for (int i = 0; i < size; i++) {
    poly[i] = new Term();
    ...
}
for(int i=0;i
您创建了
Term
s的数组,但它已初始化为all
null
s。您需要创建
Term
s

for(int i=0;i<size;i++)
{
    poly[i] = new Term();
    poly[i].coeff=0;
    poly[i].exponent=0;
}

for(int i=0;i创建数组!=创建数组的内容作为旁白,我将使用
poly.length
而不是size变量将循环绑定到数组的大小。
for(int i=0;i<size;i++)
{
    poly[i] = new Term();
    poly[i].coeff=0;
    poly[i].exponent=0;
}