不太明白,这里为什么要用STATIC,该如何处理
不太明白,这里为什么要用STATIC
不太明白,上面1,2,3处为什么一定要定义成static,不然eclipse 就报错
------解决方案--------------------
因为main方法是静态的。静态方法只能引用静态成员。
------解决方案--------------------
静态变量用于计数,或者为了节省空间
------解决方案--------------------
所有对象中的静态变量都是相同的,就是只实例化一次
------解决方案--------------------
------解决方案--------------------
静态的变量直接可以通过类名来调用,
------解决方案--------------------
如果不设成static,那就意味着变量必须由对象引用.
楼主在main方法里已经创建了类CreateFile 的对象cf, 在不设成static的情况下,可以通过对象引用. 做如下修改:
- Java code
import java.io.*; public class CreateFile { //private FileInputStream fis =null; //private FileOutputStream fos=null; static int n=1; // 1 private static File a=new File("D:"); //2 private File[] list; static int i; //3 /** * @param args */ public static void main(String[] args) { CreateFile cf=new CreateFile(); cf.find(a, n); System.out.println("总文件数是"+i+"个!"); } public void find(File a,int n){ if(!a.isDirectory()){ for(int i=1;i<n;i++){ System.out.print(" * "); } System.out.println(a.getAbsolutePath()); i++; } else{ list=a.listFiles(); if(list!=null){ for(File a1:list) find(a1,n+1); } } } }
不太明白,上面1,2,3处为什么一定要定义成static,不然eclipse 就报错
------解决方案--------------------
因为main方法是静态的。静态方法只能引用静态成员。
------解决方案--------------------
静态变量用于计数,或者为了节省空间
------解决方案--------------------
所有对象中的静态变量都是相同的,就是只实例化一次
------解决方案--------------------
------解决方案--------------------
静态的变量直接可以通过类名来调用,
------解决方案--------------------
如果不设成static,那就意味着变量必须由对象引用.
楼主在main方法里已经创建了类CreateFile 的对象cf, 在不设成static的情况下,可以通过对象引用. 做如下修改:
- Java code
public static void main(String[] args) { CreateFile cf=new CreateFile(); cf.find(cf.a, cf.n); //通过对象引用a,n. System.out.println("总文件数是"+cf.i+"个!"); //通过对象引用i. }
------解决方案--------------------
------解决方案--------------------