public class smp11 {
public static void main(String args[])
{
ko lkl = new ko();
lkl.intiko();
}}
class score
{
   int enGrade;
   public void setEn(int enGrade)
   {
this.enGrade=enGrade;   
   }
}
class ko
{
    score stug[] = new score[3];
    public void intiko()
    {
     stug[0].setEn(0);
     stug[1].setEn(1);
     stug[2].setEn(2);
    }
}
创建了两个类,不知道为什么会出现异常,明明已经new了啊

解决方案 »

  1.   

    空指针stug[0].setEn(0);
    stug[1].setEn(1);
    stug[2].setEn(2);stug[0]=
    stug[1]=
    stug[2]=
      

  2.   

    score stug[] = new score[3];这个只是创建了一个长度为3、score类型的空数组,里面并没有任何score对象元素,里面三个元素对象都是初始化为null 所以报空指针异常
      

  3.   

    score stug[] = new score[3];
      public void intiko()
      {
      stug[0].setEn(0);
      stug[1].setEn(1);
      stug[2].setEn(2);
      }这句score stug[] = new score[3];
    各元素都指向null;
    后来你又用stug[x].setEN(x) 就相当于 null.setEN(x)
    所以报空指向异常。
      

  4.   

    public class Smp11
    {
    public static void main(String args[])
    {
    Ko lkl = new Ko();
    lkl.intiko();
    }

    }class Score
    {
    int enGrade;

    public void setEn(int enGrade)
    {
    this.enGrade = enGrade;
    }
    }class Ko
    {
    Score stug[] = new Score[3];

    public void intiko()
    {
    //需要先给数组中的元素赋值
    stug[0] = new Score();
    stug[1] = new Score();
    stug[2] = new Score();

    stug[0].setEn(0);
    stug[1].setEn(1);
    stug[2].setEn(2);
    }
    }
      

  5.   

    具体做法public class smp11 {
    public static void main(String args[])
    {
    ko lkl = new ko();
    lkl.intiko();
    }}
    class score
    {
      int enGrade;
      public void setEn(int enGrade)
      {
    this.enGrade=enGrade;   
      }
    }
    class ko
    {
      score stug[] = new score[3];  public void intiko()
      {  stug[0]=new score();
      stug[1]=new score();
      stug[2]=new score();
      stug[0].setEn(0);
      stug[1].setEn(1);
      stug[2].setEn(2);
      }
    }我要分我要分~~~~~~~~~~~~~~~~~~嘿嘿
      

  6.   

    上面的同仁们都说的很多,不再过多解释了。对于java发面的问题如需帮助和支持。欢迎加入我们的java开发联盟。
    群号:
       247286682
    来者请注明csdn.
      

  7.   

    那是因为你没有实例化score.你定义了score为3的数组类型,却忽略了实例,必须报错,这样再实例一下就行了。public class smp11 {
    public static void main(String args[])
    {
    ko lkl = new ko();
    lkl.intiko();
    } }
    class score
    {
      int enGrade;
      public void setEn(int enGrade)
      {
         this.enGrade=enGrade;   
      }
    }
    class ko
    {
      int len=3;
      score[] stug = new score[len]; 
      public void intiko()
      {
      for(int i=0;i<len;i++)
      {
      stug[i]=new score();
      }
      stug[0].setEn(0);
      stug[1].setEn(1);
      stug[2].setEn(2);
      }
    }