十.内部类总结
来源:互联网 发布:苹果电脑视频剪辑软件 编辑:程序博客网 时间: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默认只有单继承
学会知道什么情况下用接口,什么时候用内部类,什么时候使用抽象类,什么时候一起使用
- 十.内部类总结
- <十>内部类
- 十、内部类的认识
- 内部类总结
- java内部类总结
- Java内部类总结
- java内部类总结
- java内部类总结
- java内部类总结
- Java内部类总结
- java内部类总结
- Java内部类总结
- Java内部类总结
- Java内部类总结
- Java内部类总结
- 内部类的总结
- Java内部类总结
- Java内部类总结
- 无法打开 源 文件“stdafx.h”的解决方法
- oracle常用命令
- Spring Boot Web
- PHP 使用aapt 读取安卓APK信息
- #洛谷 通往奥格瑞玛的道路
- 十.内部类总结
- Travel in Desert UVA
- libevent源码分析(2)--2.1.8--结构体 struct event和struct event_callback
- Spring 继承 bean 声明
- python多进程提取处理大量文本的关键词
- javascript对象
- MapReduce读写结构化文件数据写入HBase表中
- WinForm中 Dev 16.2版本的TabControl的页签标题设置
- nginx的配置、虚拟主机、负载均衡和反向代理(1)