黑马程序员技术交流社区

标题: 静态内部类中 [打印本页]

作者: 123412    时间: 2015-3-23 19:01
标题: 静态内部类中
在静态内部类中,其他类要访问静态内部类中的静态函数的时候,其格式是这样的
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();
        }



}
求解,求解
作者: 邓士林    时间: 2015-3-23 21:37
这样写
Outer.Inner.show();
new Outer.Inner().show1();
作者: 九个太阳学程序    时间: 2015-3-23 22:08
努力 奋斗
!!!!!!!  
作者: 关山明月    时间: 2015-3-23 22:34
二楼正解
作者: 山里孩子    时间: 2015-3-23 23:36
二楼写的对
作者: 小川行    时间: 2015-3-24 09:24
来学习啦!
作者: 123412    时间: 2015-3-24 13:57
邓士林 发表于 2015-3-23 21:37
这样写
Outer.Inner.show();
new Outer.Inner().show1();

奥,这样啊,谢谢
作者: 高光天    时间: 2015-3-24 14:08
我是来支持二楼的   




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2