- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
JAVA-L11-NestedClasses
Lesson 11: Nested Classes and Interfaces嵌套类和嵌套接口 LiFan(李凡) Nested Types (嵌套类型) 嵌套类型(Nested Types)指声明在其它类或接口中的类或接口 Java语言在1.2版本以后才提供对嵌套类型的支持 提供对嵌套类型的支持有以下目的: (1) 使类型(类或接口)构成不同的逻辑分组 (2) 以简单有效的方式将逻辑上相关的对象组织在一起 嵌套类型的分类 嵌套类型包括嵌套类和嵌套接口 根据嵌套类型声明的位置,可以分为成员类型和局部类型 与嵌套类型相对,包含嵌套类型的类型称为封装类(Enclosing Class) Member Types (成员类型) 成员类型(Member Types)指定义在其它类型中,与其它类型的域和方法同级的类型 成员类型分为成员类(Member Classes)和成员接口(Member Interfaces) 成员类分为静态成员类和非静态成员类 成员接口只能是静态成员接口 Static Member Classes (静态成员类) 静态成员类可以声明在类或接口中,与类的静态域和静态方法相似,被static关键字修饰 除了类名表达方式外,静态成员类与一般的非嵌套类相同,可以被final或abstract修饰 静态成员类与其封装类型一般具有紧密的逻辑相关性 静态成员类中能直接访问其封装类中静态成员,但不能访问非静态成员 Static Member Classes (静态成员类) 可以使用与类的静态成员相同的访问控制修饰符来控制对静态成员类的访问 静态成员类的类名表达有两种方式: (1) 封装类型名.静态成员类类名 (2) 当封装类在包中时,可以导入静态成员类,直接使用类名 静态成员类的引用类型变量的声明和静态成员类的对象创建与一般非嵌套类相同 Non-static Member Classes (非静态成员类) 非静态成员类只能声明在类中 非静态成员类的对象总是与其封装类的对象相关联,在语义上,没有封装类的对象就不能存在非静态成员类的对象 非静态成员类中可以直接访问其封装类的所有成员,除非被非静态成员类中声明的同名成员隐藏 非静态成员类中不能包含static的成员 Non-static Member Classes (非静态成员类) 非静态成员类中的this引用只能访问非静态成员类实例本身,要访问其封装类实例必须使用以下语法格式:封装类类名.this 例如:BankAccount.this.balance 非静态成员类的类名表达方式与静态成员类相同,但创建对象要按照以下语法格式: 封装类对象引用.new 非静态成员类构造函数 Nested Interfaces (嵌套接口) 嵌套接口可以声明在类或接口中 嵌套接口只能作为封装类或封装接口的静态成员,通常static修饰符被忽略 在面向接口的设计原则中,嵌套接口通常作为其封装类或封装接口中方法的返回类型 Local Types (局部类型) 局部类型(Local Types)指定义在其它类的方法或初始化块中的类型 局部类型只能是类不能是接口,声明在静态方法或静态初始化块中的局部类称为静态局部类,声明在非静态方法或非静态初始化块中的局部类称为非静态局部类 非静态局部类和非静态成员类又统称为内部类(Inner Classes) Local Types (局部类型) 局部类中不能包含静态成员 局部类只能使用final或abstract关键字修饰,不能使用public或static修饰 非静态局部类可以使用与非静态成员类相同的方式访问其封装类的实例 非静态局部类中可以直接访问其封装方法的局部变量或参数变量,但局部变量或参数变量必须声明为final Local Types (局部类型) 局部类的域可以隐藏其封装方法中的同名局部变量或参数变量,其封装方法中的同名局部变量或参数变量一旦被隐藏则无法访问 局部类只能在其封装方法或封装块中使用 Anonymous Classes (匿名类) 匿名类是一种特殊的局部类 匿名类通常作为抽象类或接口的实现类使用 匿名类不能定义自己的构造函数,只能使用父类或默认的构造函数 匿名类对象的创建的同时也提供了对接口或抽象类的实现 Inheritanting Nested Types 继承静态成员类或实现成员接口遵循一般的继承类或实现接口的规则 内部类的子类必须与被继承的内部类的封装类的实例关联 内部类的子类不一定也是内部类 Assignments (作业) 重新设计前面例子中的类Printer和类HighSpeedPrinter,使HighSpeedPrinter类对象中继承父类的域serial为HighSpe
您可能关注的文档
最近下载
- (正式版)D-L∕T 751-2014 水轮发电机运行规程.docx VIP
- 2025年天津市部编版小升初语文试卷现代文阅读题分类汇编(含答案) .pdf VIP
- NBT 10243-2019 水电站发电及检修计划编制导则.docx VIP
- 2025年秋(最新版)二年级语文上册第六单元教案(部编新教材).pdf
- 看盘的知识与技巧.ppt VIP
- DL-T-710-2018水轮机运行规程.docx VIP
- 远古的信息(课件)人教版2025美术一年级下册.pptx
- 宿州市埇桥区花鼓戏剧团进景区活动策划.docx VIP
- (正式版)D-L∕T 1869-2018 梯级水电厂集中监控系统运行维护规程.docx VIP
- 封神英杰传攻略资料.pdf VIP
文档评论(0)