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

时间:2014-06-26 19:49:26

标签: java exception exception-handling nullpointerexception

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

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();
    }
}

我一直得到以下例外:

Exception in thread "main" java.lang.NullPointerException
at prac.polynomial.<init>(polynomial.java:25)
at prac.polynomial.main(polynomial.java:34)

请帮助我解决我在这里做错的事。

2 个答案:

答案 0 :(得分:2)

默认情况下,Object数组的数组元素为null。在尝试访问其字段之前,请确保它们已初始化

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

答案 1 :(得分:1)

您创建了Term s的数组,但它已初始化为所有null。您需要创建Term s。

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