我在工作时遇到了这种特殊行为,但我不确定这里的问题是什么。据我所知静态 keyWord有一些功能
1。属于阶级而非对象。
2。静态方法可以访问类的静态实例变量。
但是有些人可以表达特定的行为:
public static final int x=12;
public static void go(final int x){
System.out.println(this.x);
}
在编写此特定行时,我在Eclipse中打印语句“this.x”时出现 complile 时间错误,因为 “无法使用这在静态conetext“ 。
有人可以解释我理解中缺少的东西吗?
答案 0 :(得分:2)
您无法指定您希望班级x
加this
。你需要班级名称。像,
class Example {
public static final int x=12;
public static void go(final int x){
System.out.println(Example.x);
}
}
您还可以为方法参数使用不同的变量名称。
public static final int x=12;
public static void go(final int y){
System.out.println(x);
}
答案 1 :(得分:1)
“ this ”指的是当前对象而不是类。
应该是
public static final int x=12;
public static void go(final int x){
System.out.println(ClassName.x);
}