下例Parcel4类中,内部类PContents是private,所以除了Parcel4,没人能访问它。PDestination是protected,所以只有Parcel4及其子类、还有与Parcel4同一个包中的类能访问PDestination。即客户端程序员想了解或访问这些成员,要受到限制。
上述代码等同于下属代码:
闭包(Closure)是一个可调用的对象,它记录了一些信息,这些信息来自于创建它的作用域。内部类不仅包含外围类对象(创建内部类的作用域)的信息,还自动拥有一个指向此外围类对象的引用,在此作用域内,内部类有权操作所有的成员。
java通过内部类提供闭包的功能。通过回调,对象能够携带一些信息,这些信息允许它在稍后的某个时刻用初始的对象。
运行结果: