A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© qmlovewhr 中级黑马   /  2013-8-17 23:04  /  1162 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 qmlovewhr 于 2013-8-18 01:00 编辑

package it.huigu;
public class Test4 {
public static void main(String[] args) {
  ackage it.huigu;
public class Test4 {
public static void main(String[] args) {
  Test4 t=null;
  int i=4;
  while(i>0){
   if(i==2){
    t=new Test4();
    t.add(1, 2);
   }
   if(i==3){
    t.add(3, 4);
   }
   i--;
  }
}
public int add(int i,int j){
System.out.println(i+j);
return i+j;
}
}
在两个if条件句中,都有对象t,这两个t是一样的吗,另外在两个if语句中都有调用t对象的add方法,结果发现编译能通过,执行时报错?这是为什么

评分

参与人数 1技术分 +1 收起 理由
曹秀云 + 1 神马都是浮云

查看全部评分

2 个回复

倒序浏览
当4减到3的时候就会调用add方法,可是此时t对象是空呀。会出现空指针异常
回复 使用道具 举报
这。。。
首先这个t是同一个。然后报错是因为企图调用一个指向为空的对象。你自己看看自己的代码。是先执行第二条个if的。
ps:你为什么不把add方法声明为一个静态方法。。而且你在主函数里面调用这个方法也根本不需要用对象
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马