为什么不会出错三个0

yzyyzk 2010-05-04 10:41:51
对象数组中的循环 为什么不会出错三个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;
}


}

}

...全文
219 7 打赏 收藏 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhuyouyong 2010-05-05
  • 打赏
  • 举报
回复
顶[Quote=引用 2 楼 yzyyzk 的回复:]
Exception in thread "main" java.lang.NullPointerException
at Test.main(Test.java:15)
[/Quote]
WilliamTau 2010-05-05
  • 打赏
  • 举报
回复
空指针~没有初始化~
好吧~上面已经说了~
cwjieNo1 2010-05-05
  • 打赏
  • 举报
回复
呵呵:
Man[] mans=new Man[3];
这里只是定义了Man数组,但是没有初始化,后面你调用mans[i]=new Man();
然后打印Man的属性值,当然就成了空指针异常,你可以在默认构造函数中初始化man的值
Public Man(){
.........
}
yzyyzk 2010-05-04
  • 打赏
  • 举报
回复
想起来了 Man[] mans=new Man[3];
for(int i=0;i<mans.length;i++)
{
mans[i]=new Man();
}

这个小问题20分都给你 太便宜你了

呵呵
focusforce 2010-05-04
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 amdgaming 的回复:]
出现空指针了,老大,对象数组没有初始化 所以都是null,你拿他们的方法都是 nullpointer异常啊
[/Quote]
对头,mans里边的对象都没有初始化。
yzyyzk 2010-05-04
  • 打赏
  • 举报
回复
Exception in thread "main" java.lang.NullPointerException
at Test.main(Test.java:15)
amdgaming 2010-05-04
  • 打赏
  • 举报
回复
出现空指针了,老大,对象数组没有初始化 所以都是null,你拿他们的方法都是 nullpointer异常啊

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧