黑马程序员技术交流社区

标题: 关于递归的问题 [打印本页]

作者: 我为你着迷    时间: 2014-12-2 20:30
标题: 关于递归的问题
本帖最后由 我为你着迷 于 2014-12-2 20:34 编辑
  1. import java.io.*;
  2. class FileDemo4
  3. {
  4.         public static void main(String[] args)
  5.         {
  6.                    File dir=new File("d:\\java0219");
  7.                    showDir(dir);
  8.         }
  9.         
  10.         public static void showDir(File dir)
  11.         {
  12.                 File[] files=dir.listFiles();
  13.                 for(int x=0;x<files.length;x++)
  14.                 {
  15.                         if(files[x].isDirectory())
  16.                               showDir(files[x]);
  17.                         else
  18.                               System.out.println(files[x]);
  19.                 }
  20.         }
  21. }
复制代码

大家好,这句话showDir(files[x]);我没看懂,就是为什么传递的是files[x]呢?或者
谁可以帮我把这段代码读一下呀?到底是怎么执行的呢?谢谢了。黑马币无限奉上啊。
作者: air鹏    时间: 2014-12-2 20:50

files[x]代表文件夹中的文件对象            
   判断是文件对象是是一个目录 如果是的话就将目录对象传递到showDir(File dir)方法中           其实相当于打开文件夹
知道文件对象不是目录时,就将文件打印



作者: kerner    时间: 2014-12-2 22:45
文件遍历,其实就是递归的实际应用,理解了递归调用就不难理解了,可以看着打印的结果理解。
作者: Mr.Ni    时间: 2014-12-2 23:05
showDir函数接收的参数类型是不是File类型的对象?
files是不是File类对象的数组?
那files[x]不就File类对象数组中一个File类对象么
不就符合showDir的接收类型么




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2