A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 123412 中级黑马   /  2015-3-23 19:01  /  1564 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在静态内部类中,其他类要访问静态内部类中的静态函数的时候,其格式是这样的
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();
        }



}
求解,求解

评分

参与人数 1技术分 +1 收起 理由
万合天宜 + 1

查看全部评分

7 个回复

正序浏览
我是来支持二楼的   
回复 使用道具 举报
123412 中级黑马 2015-3-24 13:57:08
7#
邓士林 发表于 2015-3-23 21:37
这样写
Outer.Inner.show();
new Outer.Inner().show1();

奥,这样啊,谢谢
回复 使用道具 举报
来学习啦!
回复 使用道具 举报
二楼写的对
回复 使用道具 举报
二楼正解
回复 使用道具 举报
努力 奋斗
!!!!!!!  
回复 使用道具 举报
这样写
Outer.Inner.show();
new Outer.Inner().show1();
回复 使用道具 举报 1 0
您需要登录后才可以回帖 登录 | 加入黑马