首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

不太明白,这里为什么要用STATIC,该如何处理

2012-09-22 
不太明白,这里为什么要用STATICJava codeimport java.io.*public class CreateFile {//private FileInput

不太明白,这里为什么要用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方法是静态的。静态方法只能引用静态成员。
[解决办法]
静态变量用于计数,或者为了节省空间
[解决办法]
所有对象中的静态变量都是相同的,就是只实例化一次
[解决办法]
探讨
因为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.        }
[解决办法]
探讨

因为main方法是静态的。静态方法只能引用静态成员。

[解决办法]
探讨
引用:

因为main方法是静态的。静态方法只能引用静态成员。

+1,其他回答貌似都跑题了

热点排行