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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

除了内部类为非静态,方法为静态的不能编译,其余均正常.
代码如下:
class Test02 {
        public static void main(String[] args) {
                Outer.Inner1 a = new Outer().new Inner1() ;
                a.print();
               
                Outer.Inner3 s = new Outer.Inner3() ;
                s.print();

                Outer.Inner4.print();
        }
}
class Outer {
        //1、内部类与方法均为非静态
        class Inner1 {
                public void print() {
                        System.out.println("print1");
                }
        }

        //2、内部类为非静态 ,方法为静态
        //为什么编译错误,如何输出?  静态方法不能引用外部的非静态.
        /*class Inner2 {                    
                public static void print() {       //Test02.java:24: 错误: 内部类Outer.Inner2中的静态声明非法
                        System.out.println("print2");
                }
        }*/
        //3、内部类为静态 ,方法为非静态
        static class Inner3 {
                public void print() {
                        System.out.println("print3");
                }
        }
        //4、内部类与方法均为静态
        static class Inner4 {
                public static void print() {
                        System.out.println("print4");
                }
        }
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马