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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 景彬 中级黑马   /  2015-5-28 20:10  /  1465 人查看  /  37 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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");
                                                }                        
    };

37 个回复

正序浏览
学习了:)
回复 使用道具 举报
百度讲的很清楚了
回复 使用道具 举报

一起学习:handshake
回复 使用道具 举报
果然分析的有道理

点评

谢谢!  发表于 2015-5-29 22:28
回复 使用道具 举报
仅此一抹心醉 发表于 2015-5-28 22:01
我擦  总结 的很详细啊··················

一起学习而已:lol
回复 使用道具 举报
半世心修 发表于 2015-5-29 08:33
局部内部类用的比较少

恩恩,那匿名内部类用的多吗?
回复 使用道具 举报
总结的挺好的,多总结有利于点招
回复 使用道具 举报

谢谢!:victory:
回复 使用道具 举报
青龙李坤 发表于 2015-5-29 21:40
好好学内部类,很有用!

恩,谨记大神教导!
回复 使用道具 举报
好好学内部类,很有用!
回复 使用道具 举报
顶顶顶:victory:

点评

谢谢!  发表于 2015-5-29 22:22
回复 使用道具 举报
总结的不错
回复 使用道具 举报
我也有点晕。。。。。。。
回复 使用道具 举报
来学习 支持下
回复 使用道具 举报
总结的很好呀 学习了
回复 使用道具 举报
局部内部类用的比较少
回复 使用道具 举报
qian0217wei 来自手机 高级黑马 2015-5-29 08:15:49
13#
匿名内部类有时写的好晕

点评

恩恩,这个有点缠的  发表于 2015-5-29 22:24
回复 使用道具 举报
膜拜大神!!!
回复 使用道具 举报
回复 币噢耶
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马