this是代表本类引用,在堆内存中;有了对象才有this。static方法在方法区中。被static修饰的成员随着类的加载而加载,可以直接类名调用;
也就是说他是先于对象存在的;对象都不存在,怎么用this调用呢;
举例
class A
{
public static void demo(String s)
{
//this.demo();//这个时候的A对象都不存在,怎么可以调用呢;
//所以JVM会提示你静态不能调用非静态成员;
System.out.println(s);
}
public void demo2(int i )
{
System.out.println(i);
}
}
class BA
{
public static void main(String[] args)
{
A.demo("haha");//它是静态方法随着类的加载而加载;所以可以类名直接调用;
}
} |