class A{
   int n;
   float m;
   public void A(){
         n=0;
         m=0;
   }
   public float add(int n, float y){
       m=n/y;
       return m;
   }
}
public class AA{
    public static void main(String[] args){
         A a[];
         a=new A[10];
         int n=9;
         float m=5;
         for(int i=0;i<10;i++){
           m=a[i].add(n,m);
           System.out.println(m);
         }
    }
}           
我这个程序编译能通过,
但是不能运行:
有急用!!!

解决方案 »

  1.   

    public static void main(String[] args){
    A a[];
    a=new A[10];//这里只是一个数组对象,并没有分配内存
    for(int i=0;i<10;i++)
    a[i]=new A();//为分一个分配内存
    int n=9;
    float m=5;
    for(int i=0;i<10;i++){
    m=a[i].add(n,m);
    System.out.println(m);
    }
    }
      

  2.   

    for(int i=0;i<10;i++){
                a[i]=new A(); //增加这一行
                m=a[i].add(n,m);
                System.out.println(m);
            }
      

  3.   

    没有分配内存空间~~这样就可以了...............public class AA{
        public static void main(String[] args){
             A a[];
             a=new A[10];
             for(int i=0;i<a.length;i++){
              a[i]=new A();
             }
             int n=9;
             float m=5;
             for(int i=0;i<10;i++){
               m=a[i].add(n,m);
               System.out.println(m);
             }
        }
    }
      

  4.   

    A[] a = new A[10] 只是给 a 分配了地址,但并没有给它生成新对象.
    你可以把对象打出来看看.
    给A弄个TOSTRING方法