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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 天雨云龙 中级黑马   /  2016-8-18 22:30  /  308 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


////成员内部类:
        //注:在静态内部类中可以定义静态的成员,而在非静态的内部类中不允许定义静态成员。
        //1、创建成员(静态)内部类中对象:Outer.Inner  oi =new Outer.Inner();   
                public class Demo04 {
                        public static void main(String[] args) {
                                Outer.Inner  oi =new Outer.Inner(); //没有创建外部类
                                oi.show();
                               
                        }       
                        public static void sop(Object obj){
                                System.out.println(obj);
                        }
                }
                class Outer{
                        private static int num = 4;
                        //在外部类的成员方法中访问内部类
                        public void test(){
                                Inner inner = new Inner();
                                inner.show();
                        }
                        //定义成员内部类
                        static class Inner{
                                void show(){
                                        //在成员内部类的方法中访问外部类的成员变量
                                        System.out.println("num=="+num);
                                }
                        }
                }
          //2、创建成员(非静态)内部类中的的内部类对象: Outer.Inner  oi =new Outer().new Inner();     
                 public class Demo04 {
                        public static void main(String[] args) {
                                Outer.Inner  oi =new Outer().new Inner();//通过外部类的对象去创建内部类。   
                                oi.show();
                        }       
                        public static void sop(Object obj){
                                System.out.println(obj);
                        }
                }
                class Outer{
                        private  int num = 4;
                        public void test(){
                                Inner inner = new Inner();
                                inner.show();
                        }
                         class Inner{
                                void show(){
                                        System.out.println("num=="+num);
                                }
                        }
                }
//方法中的内部类
public class Demo04 {
        public static void main(String[] args) {
                Outer out = new Outer();
                out.test();
        }       
        public static void sop(Object obj){
                System.out.println(obj);
        }
}
class Outer{
        private int num = 4;
        public void test(){
                class Inner{
                        void show(){
                                System.out.println("num="+num);
                        }
                }
                //方法内部类,只能在该方法中创建该类的实例对象,并调用show()方法;
                //而且方法内部类也可以访问外部类的成员变量
                Inner in = new Inner();
                in.show();
        }
}

0 个回复

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