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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 梁清平 中级黑马   /  2012-5-12 14:49  /  1698 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 梁清平 于 2012-5-12 15:36 编辑


import java.util.*;
public class CollectionDemo
{
public static void main(String[] args)
{
  method_get();
}
public static void method_get()
{
  ArrayList al = new ArrayList();
  al.add("java01");
  al.add("java02");
  al.add("java03");
  al.add("java04");
  Iterator it = al.iterator();
  while(it.hasNext());
  {
   sop(it.next());   
  }

}
public static void sop(Object obj)
{
  System.out.println(obj);
}
}
问题一:这个程序为什么运行不了,好像是形成了空的无限循环,求解。
问题二:毕向东老师的视频里有一个跟这一模一样的代码,就依次取出了容器中的内容。请解释一下这里的while循环吧,有点看不懂。。
问题三:method_get();是静态方法,为什么在调用的时候不用加class名就可以调用啊?

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

9 个回复

倒序浏览
while(it.hasNext());
   {
    sop(it.next());   
   }
你多加了个; 看见好多人都出现同样问题了 要细心哦楼主
回复 使用道具 举报
while(it.hasNext());
循环语句不要加分号 例如for 等
回复 使用道具 举报
这段代码我执行了下 把下面那个分号去了就能成功执行的,并不会形成什么死循环
while(it.hasNext())//;此处多了个分号,在循环while for 或者 if switch等后面有个括号下面还{}代码块的时候不用加分号
   {
       sop(it.next());
  }
}

这个while循环的条件是it.hasNext(),这个方法的意思是判断是否存在下一条记录,如果存在返回true(继续循环)如果不存在
返回false(结束循环)
循环体是:sop(it.next());
sop();不用解释了吧,打印吗
it.next();这个方法的功能是读取下一条记录,并把负责读取的那个指针指向下条记录的后面

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

回复 使用道具 举报
在迭代器区元素的判断语句处出现了错误
Iterator it = al.iterator();
while(it.hasNext());
  {
   sop(it.next());   
  }
程序运行到判断语句while时就会判断运行的条件,而你的后面加了分号,相当于一条while语句了
执行到此条语句是it.hasNext()返回true,语句就相当于while(true);这是个死循环,程序到这一步就停下了

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

回复 使用道具 举报
上面的就不说了
问题三:method_get();是静态方法,为什么在调用的时候不用加class名就可以调用啊?
静态方法其实就是用到了静态绑定(当方法在方法区时,就已经被加上了类.方法,而非静态用到了动态绑定this.方法。)虽然你没写但实际上已经隐式的写了,当不在一个类时可以用显示的类.方法。
回复 使用道具 举报
田建 高级黑马 2012-5-12 21:33:59
7#
新手路过,学习为上!
回复 使用道具 举报
问题三:method_get();是静态方法,为什么在调用的时候不用加class名就可以调用啊?
因为你的这个method_get()方法是本类中的方法,本来的中方法不管是static还是非static方法都能直接通过 方法名调用 如 method_get(); 本类调用本类方法默认为 this . 方法名
加了static 修饰不过是给它设定了生命周期的时限变长了,存放地方由栈内存转到方法区.  
回复 使用道具 举报
是的,分号的问题
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马