嵌套类包括:
1.静态成员嵌套类:可视为外部类的静态方法,可访问外部类的静态属性和方法。
2.成员嵌套类:可视为外部类的成员方法,可访问外部类的所有成员属性和方法。成员嵌套类的对象一定会和外部类的对象关联,如下两者将关联在一起(成员嵌套类可通过Outer.this访问所关联的外部类对象):
Outer.Inner inner=new Outer().new Inner();
3.匿名嵌套类:可视为外部类的局部变量,可访问外部类的所有成员属性和方法,以及使用final修饰的局部变量
4.局部嵌套类:同匿名嵌套类
使用原则:
1.如果嵌套类不需要访问外部类对象,那么应使用静态成员嵌套类,以便GC能及时回收
2.在外部类的方法里,如果已存在相应的类型,那么应优先使用匿名嵌套类
3.匿名嵌套类和局部嵌套类应保持较少的代码量
4.谨慎使用public,protected修饰嵌套类
用法举例:
1.静态成员嵌套类可作为帮助类
public class Layout { private LayoutParams layoutParams; public LayoutParams getLayoutParams() { return layoutParams; } public void setLayoutParams(LayoutParams layoutParams) { this.layoutParams = layoutParams; } //使用静态嵌套类提供布局参数 public static class LayoutParams{ private int width; private int height; //特殊的布局参数 public static int MATCH_PARENT=-1; public static int WRAP_CONTENT=-2; public LayoutParams(int width,int height){ this.width=width; this.height=height; } } }
2.使用成员嵌套类实现多个接口
interface Singer{ void sing(); } interface SongWriter{ void write(); } //Person可能同时是歌手和作曲家 public class Person implements Singer,SongWriter{ private String name; private Singer singer; private SongWriter songWriter; public Person(String name){ this.name=name; this.singer=new SingerImpl(); this.songWriter=new SongWriterImpl(); } public void sing() { singer.sing(); } public void write() { songWriter.write(); } private class SingerImpl implements Singer{ public void sing() { System.out.println(name+"is singing!!!"); } } private class SongWriterImpl implements SongWriter{ public void write() { System.out.println(name+"is writing!!!"); } } }
相关推荐
Keil MDK4.22a 破解及注册机
P2P终结者 4.22 绿色完美版
keil4.22 破解软件,使用可以获得破解码,有效期可达2020
飞凌官方JLINK V4.22驱动。此外还有V412与V440。会陆续上传
MemTest 4.22.dmg mac下内存测试
Keil 最新版本注册机, 试过可以用 MDK 4.22a 註冊機
MDK4.22注册机,已经测试过了,可以用,激活后时间很长
arcgis_js_api_4.22
android源码开发实战4.22.zip
ArcGIS API for JavaScript用于构建高性能的WebGIS应用程序,同时结合现代网络技术和强大的地理空间功能,利用ArcGIS Online、ArcGIS Server发布的地图服务以及网络上的其他服务内容,使用户在web端能够进行应用程序...
KEIL4.22-4.53-4.72a-5.0的注册机,keil 5.0亲测可以通过
KEIL MDK最新版4.22版(共六个压缩包,请全部下载后解压),更新了大部分固件库,支持器件种类更多。附破解补丁,多生成几次即可破解……
最新安卓版本的nrf connect 4.22.3,帮忙大家无法上google play下载
郑州大学校园网的客户端,锐捷认证客户端,版权所有郑州大学
KEIL MDK最新版4.22版(共六个压缩包,请全部下载后解压),更新了大部分固件库,支持器件种类更多。附破解补丁,多生成几次即可破解……
P2P终结者4.22已破解最高权限,网管人员的好工具
KEIL MDK最新版4.22版(共六个压缩包,请全部下载后解压),更新了大部分固件库,支持器件种类更多。附破解补丁,多生成几次即可破解……
"【WordPress插件】2022年最新版完整功能demo+插件v4.22 Ajax Search Pro - Best Live WordPress Search & Filter Plugins Ajax Search Pro - 最佳Live WordPress搜索和过滤器插件" ---------- 泰森云每天更新发布...
j-link驱动安装软件,arm v4.22G版本
frameworks\base\telephony frameworks\opt\telephony