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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黑马TYR 中级黑马   /  2015-4-25 01:09  /  318 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

/*
        内部类:
                成员内部类        --        定义在成员位置
                局部内部类        --        定义在局部位置

        内部类调用外部类成员
                直接使用

        外部类想使用内部类成员
                创建内部类对象,调用/使用该对象的方法/变量

        在测试类中使用内部类
                1.在测试类中创建外部类对象,调用包含有内部类对象的方法(diaoYN),间接执行使用了内部类中的成员变量
                2.在测试类中直接创建内部类对象,格式如下:
                        外部类名.内部类名 变量 = new 外部类名().new 内部类名();
                                                                   = 外部类对象.内部类对象;

                        Outer.Inner1 oi = new Outer().new Inner1();
                        oi.show();



        class Body
        {
                private        class Heart
                {
                        public void operate()
                        {
                                System.out.println("心脏搭桥手术");
                        }
                }

                public void zhenDuan()
                {
                        if(你是不是医生)
                        {
                                Heart h = new Heart();
                                h.operate();
                        }
                }

        }
       
        class Test
        {
                Body.Heart bh = new Body().new Heart();
                bh.operate();


                Body b = new Body();
                b.zhenDuan();

        }

        class Outer
        {
                static int age;
                static class Inner2
                {
                        public void show()
                        {
                               
                        }
                        public static void show2()
                        {
                                //****
                        }
                }
                Outer.Inner2.show2();
       
        }



*/

class  Outer
{
        public int num = 20;
       
        /*
        public int getNum()
        {
                return num;
        }
        */

        //成员内部类
        class Inner1
        {
                public int innerNum = 30;
                public void show()
                {        //直接使用
                        System.out.println(num);
                }
        }

        public void method()
        {
                int x = 100;
        }
       
        //只要这个方法被调用,我就输出了内部类中的成员变量
        public void diaoYN()
        {
                Inner1 i1 = new Inner1();
                System.out.println(i1.innerNum);        //30
        }
               
       
}
class OuterTest
{
        public static void main(String[] args)
        {
                Outer o = new Outer();
                o.diaoYN();

                //外部类名.内部类名 变量 = new 外部类名().new 内部类名();
                //该语句创建了一个内部类对象
                Outer.Inner1 oi = new Outer().new Inner1();
                System.out.println(oi.innerNum);
                oi.show();
        }
}

0 个回复

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