Cannot use this in a static context

public class Test {
    private static int n = 0;
	public static void setNum(int n) {
		this.n = n;  //Cannot use this in a static context
	}
	public static void main(String[] args) {
		setNum(0);
	}
}

意思是:this关键字不能在static静态方法中使用

因为:

Static方法是类方法,先于任何的实例(对象)存在。即Static方法在类加载时就已经存在了,但是对象是在创建时才在内存中生成。而this指代的是当前的对象

在方法中定义使用的this关键字,它的值是当前对象的引用.也就是说你只能用它来调用属于当前对象的方法或者使用this处理方法中成员变量和局部变量重名的情况. 
而且,更为重要的是this和super都无法出现在static 修饰的方法中,static 修饰的方法是属于类的,该方法的调用者可能是一个类,而不是对象.如果使用的是类来调用而不是对象,则 this就无法指向合适的对象.所以static 修饰的方法中不能使用this.

你可能感兴趣的:(My,Java,life)