黑马程序员技术交流社区

标题: 内部类总结 [打印本页]

作者: 景彬    时间: 2015-5-28 20:10
标题: 内部类总结
1.内部类:
        概念: 在一个类的内部,定义了一个新类
        位置:  
                成员位置:
                        成员内部类
                局部位置:
                        局部内部类
        特点:
                内部类可以直接访问外部类中的成员, 包含私有成员
                而外部类访问内部类的成员,必须要先创建内部类对象

2.成员内部类:
                格式:
                        class Outer(){
                                //成员内部类
                                class Inner{
                                        .....
                                }
                        }
        如何访问成员内部类
                方式1:  直接创建内部类对象
                        格式:
                        外部类名.内部类名 对象名 = new 外部类名().new 内部类名();
                方式2:        在外部类中,创建一个用来访问内部类成员的方法即可
                常用修饰符:
                        private : 为了提高数据的安全性
                        static  : 为了方便访问

3.局部内部类:
                格式:class Outer(){
                                public void method(){
                                        //局部内部类
                                        class Inner(){
                                                ......
                                        }
                                        Inner in = new Inner();
                                        in.成员;
                                }
                        }
当局部内部类访问外部类中的局部变量的时候, 外部类的局部变量要加final修饰。      
         
4.匿名内部类:
         概念: 就是没有名字的内部类
         使用匿名内部类的前提条件:
                要先定义好一个外部类, 或者定义好一个接口,才能使用匿名内部        类
                        如: interface Inter{
                                public abstract void show();
                            }
                创建匿名内部类
                        方式1:
                                new 外部类名(){
                                        //重写外部类中抽象方法
                                };
                        方式2:
                                new 接口名(){
                                        //重写接口中的抽象方法
                                };
                        如:new Inter(){
                                        public void show(){
                                            System.out.println("show");
                                        }
                            };
                注意:   匿名内部类 实际上可以理解为 是实现了该接口的子类对象,
                             或者可以理解为 是继承了外部类的子类对象
               总结:   可以理解为 匿名内部类, 就是一个子类对象
                            那么,我们就可以使用多态的方式
                            将子类对象 赋值 为 父类引用
                        如: Inter in = new Inter(){
                                                public void show(){
                                                            System.out.println("show");
                                                }                        
    };


作者: 城北一直晴。    时间: 2015-5-28 20:25
我今天被匿名内部类弄的脑袋都大了
作者: a397131103    时间: 2015-5-28 21:06
学习了谢谢
作者: 景彬    时间: 2015-5-28 21:08
a397131103 发表于 2015-5-28 21:06
学习了谢谢

一起学习:lol
作者: 追忆似水年华    时间: 2015-5-28 21:09
学习,谢谢。
作者: !85684009ex    时间: 2015-5-28 21:43
膜拜大神!!!
作者: l598790586    时间: 2015-5-28 21:51
都差不多
作者: haoguan10    时间: 2015-5-28 21:55
不错不错
作者: 人在旅途~东营    时间: 2015-5-28 21:57
不错,学习下,巩固下下
作者: 仅此一抹心醉    时间: 2015-5-28 22:01
我擦  总结 的很详细啊··················
作者: devil_mao    时间: 2015-5-28 22:27
回复 币噢耶
作者: !85684009ex    时间: 2015-5-29 07:39
膜拜大神!!!
作者: qian0217wei    时间: 2015-5-29 08:15
匿名内部类有时写的好晕
作者: 半世心修    时间: 2015-5-29 08:33
局部内部类用的比较少
作者: 夏尔    时间: 2015-5-29 09:01
总结的很好呀 学习了
作者: 不走回头路    时间: 2015-5-29 09:03
来学习 支持下
作者: sjaiwl    时间: 2015-5-29 09:29
我也有点晕。。。。。。。
作者: mmakun    时间: 2015-5-29 09:46
总结的不错
作者: 张海旭    时间: 2015-5-29 21:32
顶顶顶:victory:
作者: 青龙李坤    时间: 2015-5-29 21:40
好好学内部类,很有用!
作者: 景彬    时间: 2015-5-29 22:15
青龙李坤 发表于 2015-5-29 21:40
好好学内部类,很有用!

恩,谨记大神教导!
作者: 景彬    时间: 2015-5-29 22:16
mmakun 发表于 2015-5-29 09:46
总结的不错

谢谢!:victory:
作者: 朱吕龙    时间: 2015-5-29 22:19
总结的挺好的,多总结有利于点招
作者: 景彬    时间: 2015-5-29 22:23
半世心修 发表于 2015-5-29 08:33
局部内部类用的比较少

恩恩,那匿名内部类用的多吗?
作者: 景彬    时间: 2015-5-29 22:26
仅此一抹心醉 发表于 2015-5-28 22:01
我擦  总结 的很详细啊··················

一起学习而已:lol
作者: kmlitheima    时间: 2015-5-29 22:26
果然分析的有道理
作者: 景彬    时间: 2015-5-29 22:27
!85684009ex 发表于 2015-5-29 07:39
膜拜大神!!!

一起学习:handshake
作者: 黑马生涯    时间: 2015-5-29 23:38
百度讲的很清楚了
作者: 腹黑生姜    时间: 2015-6-23 19:26
学习了:)




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