Nested Types(嵌套类型 嵌套类型 Nested Types)指声明在其它类或 接口中的类或接口 Java语言在12版本以后才提供对嵌套类型的 支持 提供对嵌套类型的支持有以下目的: (1)使类型(类或接口)构成不同的逻辑分组 (2)以简单有效的方式将逻辑上相关的对象 组织在一起
Nested Types (嵌套类型) • 嵌套类型(Nested Types)指声明在其它类或 接口中的类或接口 • Java语言在1.2版本以后才提供对嵌套类型的 支持 • 提供对嵌套类型的支持有以下目的: (1) 使类型(类或接口)构成不同的逻辑分组 (2) 以简单有效的方式将逻辑上相关的对象 组织在一起
嵌套类型的分类 嵌套类型包括嵌套类和嵌套接口 根据嵌套类型声明的位置,可以分为成 员类型和局部类型 与嵌套类型相对,包含嵌套类型的类型 称为封装类( Enclosing Class
嵌套类型的分类 • 嵌套类型包括嵌套类和嵌套接口 • 根据嵌套类型声明的位置,可以分为成 员类型和局部类型 • 与嵌套类型相对,包含嵌套类型的类型 称为封装类(Enclosing Class)
Member Types(成灵类型 成员类型( Member Types)指定义在其 它类型中,与其它类型的域和方法同级 的类型 成员类型分为成员类 Member classes 和成员接口( Member Interfaces 成员类分为静态成员类和非静态成员类 成员接口只能是静态成员接口
Member Types (成员类型) • 成员类型(Member Types)指定义在其 它类型中,与其它类型的域和方法同级 的类型 • 成员类型分为成员类(Member Classes) 和成员接口(Member Interfaces) • 成员类分为静态成员类和非静态成员类 • 成员接口只能是静态成员接口
Static member class9s静态成员类) 静态 package bank 类的 静态 public class BankAccount 饰 private long number; 除了 private long balance; 般的 非嵌 public static class Permissions( 静态 public boolean can Deposite, 的逻 辑相 can Withdraw can Close 静 成
Static Member Classes (静态成员类) • 静态成员类可以声明在类或接口中,与类的 静态域和静态方法相似,被static关键字修饰 • 除了类名表达方式外,静态成员类与一般的 非嵌套类相同,可以被final或abstract修饰 • 静态成员类与其封装类型一般具有紧密的逻 辑相关性 • 静态成员类中能直接访问其封装类中静态成 员,但不能访问非静态成员 package bank; public class BankAccount{ private long number; private long balance; public static class Permissions{ public boolean canDeposite, canWithdraw, canClose; } …… }
Static Member Classes(静态成员类) import bank BankAccount BankAccount. Permissions perms=new BankAccount. Permissions; 静态成员类的类名表达有两种方式: import bank BankAccount. Permissions; (2)当 态成员 类 Permissions perms=new Permissions; 静态成贝天时用天坐里时严不静态成 员类的对象创建与一般非嵌套类相同
Static Member Classes (静态成员类) • 可以使用与类的静态成员相同的访问控制修 饰符来控制对静态成员类的访问 • 静态成员类的类名表达有两种方式: (1) <封装类型名>.<静态成员类类名> (2) 当封装类在包中时,可以导入静态成员 类,直接使用类名 • 静态成员类的引用类型变量的声明和静态成 员类的对象创建与一般非嵌套类相同 import bank.BankAccount; …… BankAccount.Permissions perms=new BankAccount.Permissions(); …… import bank.BankAccount.Permissions; …… Permissions perms=new Permissions(); ……