如题:
private static String filePath;public static void setFilePath(String filePath){
    this.filePath = filePath;
这样用this不可以 什么原因

解决方案 »

  1.   

    static 方法里面似乎不能用this
      

  2.   

    static不就是类级别的吗
    就是说调用static方法时 
    根本不存在this指定的字段吗
    有点没搞明白 为什么不可以用
      

  3.   

    能够被类的对象实例访问的成员一样也可以被this所访问,this代指当前对象,而静态成员不属于任何对象,它只属于类本身。楼主只需要记住“静态成员不支持使用this关键字”就可以了。
      

  4.   

    静态成员,不能用this,
    这是语法规定,
      

  5.   

    private static String filePath; public static void setFilePath(String filePath){ 
        this.filePath = filePath; 
    这样用this不可以 什么原因static 与private是不能混用的
      

  6.   

    static 在程序启动时就需要初始化,而这个时候你的类还只是个模板,并不是对象,所以是没有this的
    我是这样认为的
      

  7.   

    谁说static 与private是不能混用的。。?
      

  8.   

    static方法和域是类的方法和域,不必通过具体的类对象去调用它;而普通方法中的this是指代的调用此方法的对象.
      

  9.   

    “静态成员不支持使用this关键字”:
    1.不可以用类的对象实例以及this来访问静态成员
    2.静态成员里不支持使用this。
      

  10.   

    可以认为非static的方法编译器都自动给方法添加一个this参数,用来对对象本身进行操作。而static的方法则不这样。
      

  11.   

    static 所命名的属性和方法应该是对整个程序所开放,这个时候属性和方法就不属于当前对象,所以用THIS关键字是行不通的!
    private static String filePath; public static void setFilePath(String filePath){ 
        (应该改成当前类名).filePath = filePath;
    }
      

  12.   

    setFilePath(String filePath)方法是静态的,在静态方法里面就不存在this.
      

  13.   

    static不属于对象  他属于类似于公共的东西 
    非static属于对象  类似于私人的东西 当你要用公家的东西时,你可以直接拿来用,当你要用某个私人物品时,那你必须要指定所用的那个物品是来自于哪个(私)人你不要以为static的东西写在某个类里面就和这个类所引用出来的对象有什么关系,static的东西写在任何一个地方都是一样的this:在对象内部表示的就是其本身(对象),在对象外面是没法用的就像:
    张三对李四说:"我",这个"我"就等于this,就是代表张三
    而李四要叫张三的话不可能叫"我"吧!再强调一下:static的东西不是属于对象的东西!java的面向对象概念含有10%的杂质,也就是非面向对象的东西
    5% = 八大基础类型
    5% = static
      

  14.   

    还是没明白static为什么不能调用非static
      

  15.   

        this是是表示当前对象,它是在对象创建的时候对有的,而static是类方法或类属性,它是在类加载时就分配了对象的,在类加载时,你都还没有创建对象,也就是说this都不存在,又怎么能用呢?
      

  16.   

    static是属于类的...用类名.*来调用..不用实例化...非static的属性方法..是属于对象的..想调用就必须用对象名.*来调..既然static方法不需要实例化...也就说没有生成对象..也就是不能调用非static的属性\方法..所以说...static为什么不能调用非static
      

  17.   

    你可以这样理解,在对一个类进行初始化产生一个对象时,这个对象并不包含static的内容。而this就相当于这个对象,既然这个对象不包含static内容,你怎么通过this对其进行调用呢?调用static要通过类去调用,不能是对象(this)
    其实就像楼上的朋友说的那样,楼主不必去想为什么static不能这么用,只需记住不能这么用就行了,到你再多学一点,自己就清楚了。
      

  18.   

    在静态方法里不能用this,就像你不能在main方法里用this一样,静态方法是类级别的,this是对象级别的。
      

  19.   

    this代表当前对象的引用。被static修饰的变量 不属于任何对象。
      

  20.   

    this 是指对象本身,static不需要new对象,对象不存在也就没法用this