对象数组中的循环 为什么不会出错三个0?????public class Test{
public static void main(String[] args){
System.out.println("main start....");
Man man1 ;  man1=new Man();//引用 就是变量名  
man1.weight=22;
man1.height=183;
System.out.println(man1.weight);
System.out.println(man1.height);
System.out.println(man1.count(man1.height,man1.weight));
//********************************************
Man[]  mans=new Man[3];
 
for(int i=0;i<mans.length;i++)
{
System.out.println(mans[i].height);
}
System.out.println("main end....");
}
}
class Man{

double  height=0;
double  weight=0;//default

public Man(){


}
public Man(double height,double weight){
this.weight=weight;
this.height=height;

}
public double count(double height,double weight){
if(weight!=0)
{
return height/weight;
}
else
{

System.out.println("weight can not be 0!!!");
return 0;
}


}}

解决方案 »

  1.   

    出现空指针了,老大,对象数组没有初始化 所以都是null,你拿他们的方法都是 nullpointer异常啊
      

  2.   

    Exception in thread "main" java.lang.NullPointerException
        at Test.main(Test.java:15)
      

  3.   

    对头,mans里边的对象都没有初始化。
      

  4.   

        想起来了            Man[]  mans=new Man[3];
    for(int i=0;i<mans.length;i++)
    {
    mans[i]=new Man();
    }这个小问题20分都给你  太便宜你了呵呵 
      

  5.   

    呵呵:
    Man[] mans=new Man[3];
    这里只是定义了Man数组,但是没有初始化,后面你调用mans[i]=new Man();
    然后打印Man的属性值,当然就成了空指针异常,你可以在默认构造函数中初始化man的值
    Public Man(){
    .........
    }