在静态内部类中,其他类要访问静态内部类中的静态函数的时候,其格式是这样的
new 外部类名.内部类名.方法名()
但是我的下边这个程序中要访问静态内部类中的静态方法时,则必须和访问静态内部类中的非静态方法的格式一样,否则就会报错,这是怎么回事呢?
class Testtwo
{
public static void main(String[] args)
{
/*
当其他类调用内部类的静态成员和非静态成员,格式一样,如下
*/
new Outer.Inner().show();
new Outer.Inner().show1();
System.out.println("----------------------------");
new Outer().method();
}
}
class Outer
{
int x=3;
public static int num=9;
//当内部类中有静态成员时,那么内部类也必须是静态的。
static class Inner
{
static void show()
{
System.out.println("num="+num);
System.out.println("这是静态内部类中的静态函数的内容!");
}
void show1()
{
System.out.println("num"+num);
System.out.println("这是静态内部类中的非静态函数的内容!");
}
}
public void method()
{
//这是调用静态内部类的静态成员
Inner.show();
//这是调用静态内部类的非静态成员
new Inner().show1();
}
}
求解,求解 |