请高手看下面的代码
test(file1); 这里括号中传入上面创建的对象是表示什么意思?
test(file2);方法中调用方法我知道是递归可是这里面也传入一个创建的对象是什么意思?非常感谢 
package package2;
import java.io.File;
public class TestFile { 
public static void main(String[] args) {  
File file1=new File("F:\\软件程序");  
test(file1); 

public static void test(File file){  
File []file1=file.listFiles();  
for(File file2:file1){   
if(file2.isDirectory()){    
test(file2);   
}else{   
 System.out.println(file2.getAbsolutePath());      
 }} 
 }}

解决方案 »

  1.   

    高手我就想知道test(file1); 这里括号中传入上面创建的对象是表示什么意思?这句话是如何执行的?能用中文说一遍吗谢谢。
      

  2.   


    package com.meritit.test;import java.io.File;public class Test { 
    public static void main(String[] args) {
    /*
     * 注意:这里是创建一个目录,而不是一个文件
     */
    File file1 = new File("D:\\a");
    test(file1);
    }  public static void test(File file) {
    //列出该目录下所有文件(文件和目录)
    File[] file1 = file.listFiles();
    //遍历
    for (File file2 : file1) {
    //如果是目录
    if (file2.isDirectory()) {
    //迭代:继续找其中的目录和文件
    test(file2);
    //如果是文件,直接打印绝对路径
    } else {
    System.out.println(file2.getAbsolutePath());
    }
    }
    }
    }目录结构输出结果
    D:\a\aaa\test1.txt
    D:\a\aaa\test2.txt
    D:\a\test3.txt
      

  3.   

    你可能有两个疑问:
    为什么要用静态方法?什么时候要用静态方法?
    我先说一下我的理解吧
    1、使用静态方法可以不用创建对象的实例,静态的方法是该类的方法,在静态方法区,可以直接获得该方法而无需创建实例。
    2、有时候当我们的类是个工具类,或者其他没有属性的类时。这是我们可以将该类中的方法设为静态,因为我们不需要每用一次就创建该类的实例。
    关于static的详细请看:http://blog.csdn.net/dawanganban/article/details/9942605
      

  4.   

    你先是实例化的一个File类型的对象 他封装了一个路径 可以这么说其实他就是一个路径  为下面调用它的方法提供类一个路径