java基础 内部类 简单总结
2015-10-21 18:01
501 查看
简单明了代码直接上
四种内部类详细,都有注释/** * * @author wuyishun_kmk@outlook.com * 内部类4种方法总结 */ public class InnerClass { public static int staticId = 123; public int id = 123; /** * 成员内部类 直接使用Outer.this表示外部类对象 外部类要访问内部类的 成员变量,要通过对象来获取 */ public class InnerMemberClass { public void sys() { System.out.println("成员内部类访问外部类的变量" + InnerClass.this.id); } } /** * 静态 内部内 * 只可以访问外部类的静态成员和静态方法 */ public static class InnerStaticClass { public void sys() { System.out.println("静态内类访问外部类的静态变量" + staticId); } } /** * 局部内部类 定义在方法中 只能访问外部类的方法或代码块中定义为final类型的局部变量 * 只能在方法或代码块中使用,对外界不透明 * 在android中很常见 */ public void localMethod() { int localId1 = 99; final int localId2 = 99; // 不能被public, protected, private和static修饰 class localInner { public void sys() { System.out.println("局部内部类 访问外部类的变量" + id); // System.out.println("访问外部方法中的变量"+localId1);不能访问 System.out.println("访问外部方法中的变量" + localId2); } } // 只能在方法类使用 new localInner().sys(); } /** * 测试方法 * @param a */ public static void main(String[] a) { // 成员内部类的创建 InnerClass.InnerMemberClass memberClass = new InnerClass().new InnerMemberClass(); memberClass.sys(); // 静态内部内创建 InnerClass.InnerStaticClass staticInner = new InnerClass.InnerStaticClass(); staticInner.sys(); // 局部内部类调用,直接调用方法 InnerClass inner = new InnerClass(); inner.localMethod(); // 匿名内部测试 new anonyClass() { @Override public void oneMethod() { System.out.println("重写了anonyClass中的抽想法 方法"); } }.sys(); } } abstract class anonyClass { public void sys() { oneMethod(); System.out.println("这个是用于测试匿名内部内的"); } /** * 在这里用了模板设计模式,在子类中重写 */ public abstract void oneMethod(); }
相关文章推荐
- springMVC--@requestBody
- java线程安全
- JAVA设计模式(12) —<结构型>享元模式(Flyweight)
- JAVA反射学习总
- java系统学习(十七) --------Swing组件与布局管理器
- java系统学习(十七) --------Swing组件与布局管理器
- eclipse中运行pig
- JAVA用flexpaper实现在线预览PDF文件
- Java反射获取一个类的所有get方法
- spring框架学习(一)
- eclipse maven depoly项目到nexus
- Java Lock
- JAVA设计模式---原型模式--浅客隆和深克隆
- 实现Java多线程的三种方式
- 用java实现循环链表
- 关于spring和mybatis集成后如何进行批处理总结
- 用java来调用OpenCV (二)
- spring自定义cache
- SpringMVC配置easyui-datagrid
- java建立url请求获取数据