静态方法中怎么引用静态成员?

jdgdf566 2013-10-18 05:28:57

public class T {
static int $i;
}
public static void myfun() {
this.i;
}


方法myfun中,除了直接写i,还可以怎么写?this.i;不行,不能self::i。
...全文
154 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
失落夏天 2013-10-18
  • 打赏
  • 举报
回复

public class Test3 {
    public static int $i=5;
    public int k;
    public Test3(int k) {
    	this.k=k;
    	Test3.$i=k;
    }
    public static void main(String[] args) {
		Test3 test1 = new Test3(10);
		Test3 test2 = new Test3(5);
		System.out.println(test1.k+"   "+test1.$i);
		System.out.println(test2.k+"   "+test2.$i);
	}
}
结果: 10 5 5 5 这就是static和非static的区别
teemai 2013-10-18
  • 打赏
  • 举报
回复

public class T {
    static int $i;
}
    public static void myfun() {
          T.i;
    }
solomon5926 2013-10-18
  • 打赏
  • 举报
回复
第一个问题:myfun方法写在类的外面。 第二个问题:this.i语法错误,不构成一个语言。 第三个问题:不能在静态方法中使用this和super关键字。 第三个问题的解释:this关键字是对当前对象的引用,super是对父类的引用,静态成员优先于类加载到内存中,静态成员随着类的加载而加载,当静态成员调用this的时候,对象还没创建,自然就不能使用this了,super也是一样的。
soton_dolphin 2013-10-18
  • 打赏
  • 举报
回复
public class T { static int i; public static void myfun() { i = 9; } } 静态变量不能用THIS
soton_dolphin 2013-10-18
  • 打赏
  • 举报
回复

public class T {
    static int i;

    public static void myfun() {
          this.i = 9;
    }
}

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧