静态方法,静态内部类调用实例成员时
public class ceshi implements inter{
int a=9;
static int b=4;
public static void t1() {//静态成员方法
new ceshi().a=9;
//a=2;编译错误
b=3;
//t2();编译错误
new ceshi().t2();//正确
}
public void t2() {//实例成员方法
a=9;
b=3;
}
static class inner{//静态成员内部类
int in=1;
public void inner() {//静态内部类里的方法
new ceshi().a=0;//编译没毛病
//a=0;编译错误
b=4;
c=2;
B.v=0;
}
}
}
因此可知道
在类的静态成员方法中,调用非静态的东西(方法,成员变量),一定要先实例化!!!调用静态的东西则可直接调用。
实例成员调用静态:
直接通过名字来调用。
因此,实例内部类不能有静态成员。(实例内部类要实例化才可被调用,静态成员可以直接通过名字被调用,所以矛盾)
**
静态内部类
**
静态内部类里的实例变量,调用它时,仍然先将改静态内实例化。再调用。
静态内部类里的实例方法调用别的实例对象时,也要先实例化才可调用。(只要在咱静态内部类,无论啥玩意,不是static那都得实例化)
只要最终调用的是非静态(实例)的东西,那一律是要先实例化的。