十.内部类总结

来源:互联网 发布:苹果电脑视频剪辑软件 编辑:程序博客网 时间:2024/06/14 03:42

1.内部类指的是定义在类内部的类

2.怎么创建内部类对象,

第一种方法:使用外部类对象来创建内部类对象

                       (1)在外部类对象中添加创建内部类对象的方法

                           Class Out{

                                                  Class In{}

                                                     public In to(){return new In();}

                                                     public static void main(String[] args){

                                                         Out outObject=new Out();

                                                         Out.In in=outObject.to():

                                            } 

                                       }

                           生成内部类之前要先生成外部类的对象

                        (2)当外部类中没有添加方法创建内部类时,可使用以下方法创建内部类对象,即让外部类对象调用内部类的默认构造方法

                             外部类.内部类    对象= 外部类对象.new  内部类构造方法();

第二种方式:前提是内部类和外部类对象间没有任何联系时,使用static修饰内部类

                      此时要注意生成内部类不用依靠外部类对象


3,.使用内部类还可以保护内部类的安全,当内部类定义为private,则不能被外部类通过new 构造方法直接得到内部类对象,还给类设计者提供了途径,让类更加松耦合且隐藏了实现的细节

                      Class Out{

                                         private Class In implements 接口(extens 父类){}

                                          public 接口(父类) getInstance(){ return new In();}

                                          public static void main(String[] args){

                                                         Out outObject=new Out();

                                                         接口(父类) in=outObject.to():

                                            } }

4.根据内部类定义在类中的位置不同,分为

局部内部类,匿名内部类,静态内部类,属性内部类

局部内部类:指内部类定义在方法体内,即内部类作为方法中的一部分,所以这个内部类不能访问方法外的参数

匿名内部类:指实例化一个没有名字的内部类, 匿名内部类访问外部类的参数,该参数必须是用final修饰的

                          

                              Class Out{

                                                     public In to(){

                                                                         return new In(){...........};

                                                          }

                                                     public static void main(String[] args){

                                                         Out outObject=new Out();

                                                         In  in=outObject.to():

                                            } 

                                       }




5.内部类经过编译字节码的格式为

匿名内部类:内部类$数字.class

内部类嵌套在内部类中的:内部类1$数字内部类.class

6.使用内部类有什么好处

因为内部类定义在类中

内部类可以继承父类,抽象类,接口,所以说内部类可以实现“多重继承“”,且每个内部类实现接口都要实现里面未实现的方法,所以同一操作可能会产生不同的效果

使用内部类返回一个接口的引用对象

在外部类中公开一个方法 让内部类返回一个接口的引用对象,而内部类和其中的成员方法和属性都是private 这样保证了内部类数据的独立和安全

内部类主要用在控制框架和图形用户界面

7.设计类和接口时,优先选择类而不是接口,因为接口是一种制定规则和标准的工具,但是容易被滥用,所以只有在制定规则和标准时才使用

使用内部类和接口可以实现多继承,Java默认只有单继承

学会知道什么情况下用接口,什么时候用内部类,什么时候使用抽象类,什么时候一起使用

设计类和接口时,优先选择类而不是接口,因为接口是一种制定规则和标准的工具,但是容易被滥用,所以只有在制定规则和标准时才使用
原创粉丝点击