-
第10章–内部类_匿名内部类
Jul222013匿名内部类,因为没有名字,所以不可能有构造方法. 因而,匿名内部类一般就只有一个实例. 匿名内部类,只能借助于接口或者其他常规类的构造函数来实现. 匿名内部类通常作为函数的返回值或者参数. 1. 借助于接口实现的匿名内部类 public interface Contents { int value(); } public class Parcel7 { public C ...
阅读全文抢沙发
-
第10章–内部类_ 静态内部类 (嵌套类)
Jul192013静态内部类和普通内部类区别 (1) 普通内部类中默认含有外围类的引用, 所以一个普通内部类必须要链接一个外围类的对象, 这样普通内部来就不存在 任意的静态成员了(也不能包含static的内部类). (因为静态成员都是使用类来访问的,假如普通内部类能够包含静态成员, 而访问这些静态成员时,又需要外围类的对 ...
阅读全文
-
第10章– 内部类 _接口内部的类
Jul192013接口内部的类,创建接口的某些公共代码,这些代码可以被接口的任何实现共有. 可以在接口中使用内部类给接口做一个默认实现. interface ClassInInterface { void howdy(); //public static class Test implements ClassInInterface //可使用上面的方式定义这个内部类,因为接口内部的任何成员都是自动 public ...
阅读全文
-
第10章–内部类_方法和作用域内的内部类_定义在方法中的内部类( 局部内部类 )
Jul112013public interface Destination { String readLabel(); } public class Parcel5 { public Destination destination(String s) { //定义在方法内部的内部类(又叫 局部内部类 ) /** * 局部内部类之前 不能有 private public protected修饰, * 只能有 final 或者 a ...
阅读全文
-
第10章–内部类_ 向上转型 _隐藏细节
Jul112013public interface Destination { String readLabel(); } public interface Contents { int value(); } /** * * 内部类与 向上转型 * 改实例本质: * 1.使用内部类实现接口,该内部类是private 或者 * 内部类的 构造函数是private的,这样内部类只能在期外围内中使用,能够很好的隐藏细节 * 2.用 ...
阅读全文
-
第10章– 内部类 _.new
Jul112013package innerclasses; class SS { public SS() { DotNew dn = new DotNew(); //DotNew.Inner di = dn.new Inner(); //如果其他类的 内部类 的构造函数是private的, //则只有在这个内部类的外部类中可以使用这个内部类, //其他类是不能实例化这个内部类的 //DotNew.In ...
阅读全文
-
第10章– 内部类 _.this
Jul112013/** * * 内部类 中,返回外围类 引用的方法 * 在内部类中,设置一个方法 比如 getOuter(),在这个方法中 返回外 围类名.this. * */ public class DotThis { void f() { System.out.println("DotThis.f()"); } /** * 从内部类的方法中,返回外部类的引用 * */ public class ...
阅读全文
-
第10章–内部类_基础,内部类 的 外围类 _迭代器模式
Jul102013当生成一个内部类对象时,这个内部类对象就与制造它的 外围类对象(enclosing object)之间就有了一种关系. 所以它能访问外围类对象的所有成员,而不需要任何特殊条件. 所以,内部类对象 拥有 外围类的所有元素的访问权(包含private的). /** * * 内部类实现迭代器 * 内部类可以访问 外围类的任意属性字段,包括private ...
阅读全文
-
第10章–内部类_基础,使用内部类对象_ 内部类权限 (可见性)_指明内部类类型
Jul102013public class Parcel1 { private Contents cCommon = null; private static Contents cStatic = null; //显示初始化,可以正常使用内部类 { Contents cTmp = new Contents(); //显示初始化中,正常使用内部类 类型 cCommon = cTmp; Parcel1.Contents cc = cTmp; // 也可 ...
阅读全文