- 1、本文档共58页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
第8章内嵌类与lambda表达式1
教学目标(1) 理解内嵌类概念(2) 掌握成员内部类的定义和使用(3) 掌握局部内部类的定义和使用(4) 掌握匿名内部类的定义和使用(5) 掌握静态内嵌类的定义和使用(6) 掌握lambda表达式的语法,理解并能定义函数式接口(7) 理解lambda表达式的作用域,掌握lambda表达式如何访问外部变量(8) 掌握lambda表达式静态方法引用、实例方法引用、构造方法引用(9) 掌握ArrayList的方法forEach()、removeIf()与lambda表达式的联合使用(10)掌握Comparator接口的使用2
内容38.1内嵌类8.1.1成员内部类8.1.2局部内部类8.1.3匿名内部类8.2.2lambda表达式作用域8.2.3方法引用8.2.4lambda表达式与ArrayList8.1.4静态内嵌类8.2lambda表达式8.2.1lambda表达式语法8.2.5Comparator接口
内容48.1内嵌类8.1.1成员内部类8.1.2局部内部类8.1.3匿名内部类8.2.2lambda表达式作用域8.2.3方法引用8.2.4lambda表达式与ArrayList8.1.4静态内嵌类8.2lambda表达式8.2.1lambda表达式语法8.2.5Comparator接口
8.1内嵌类内嵌类(nestedclass),是指定义在另一个类中的类。包含内嵌类的外部类被称为内部类的外嵌类。使用内嵌类的主要原因:内嵌类可以对同一包中的其它类隐藏,增强了代码的封装性,使得代码更加模块化和可维护。内嵌类可以直接访问外嵌类的成员变量和方法,复用外嵌类的代码,无需通过复杂的接口实现或继承关系来实现代码复用。5
8.1内嵌类内嵌类包括静态内嵌类:显式使用static修饰的内嵌类隐式静态类:成员枚举类、局部枚举类、成员记录类、局部记录类、一个接口的成员类内部类:非显式、隐式静态的内嵌类实名内部类匿名内部类6
78-1内嵌类可以分为[填空1]和[填空2]。作答填空题1分
88-2关于内嵌类的描述错误的是()内嵌类可以对同一包的其他类隐藏内嵌类可以增强代码的封装性内嵌类不能实现代码复用内嵌类可访问外嵌类的数据域和方法ABCD提交单选题1分
内容98.1内嵌类8.1.1成员内部类8.1.2局部内部类8.1.3匿名内部类8.2.2lambda表达式作用域8.2.3方法引用8.2.4lambda表达式与ArrayList8.1.4静态内嵌类8.2lambda表达式8.2.1lambda表达式语法8.2.5Comparator接口
内容108.1内嵌类8.1.1成员内部类8.1.2局部内部类8.1.3匿名内部类8.2.2lambda表达式作用域8.2.3方法引用8.2.4lambda表达式与ArrayList8.1.4静态内嵌类8.2lambda表达式8.2.1lambda表达式语法8.2.5Comparator接口
8.1.1成员内部类成员内部类是最普通的内部类,它的定义为位于另一个类的内部。Java语言定义成员内部类一般形式如下:修饰符1可以使用public或缺省(无修饰符)修饰符2可以是public、protected、private或缺省当内部类被private修饰时,该内部类在外嵌类的外部不可见当内部类被public修饰时,该内部类在外嵌类的外部可见成员内部类也可以继承父类、实现接口11[修饰符1]classOuterClass{//外嵌类//...[修饰符2]classNestedClass[extends…][implements…]{//成员内部类//...}}
8.1.1成员内部类外嵌类和实名内部类都会产生自己独立的字节码文件。对于实名内部类,其字节码文件的文件名为:外嵌类名$实名内部类名.class。简单示例:程序清单8-1CircleNestDemo.java程序清单8-1对应的Java源文件只有一个:CircleNestDemo.java,产生的字节码文件有两个:CircleNestDemo.class,CircleNestDemo$Draw.class。12
8.1.1成员内部类需要注意的是,当成员内部类拥有和外嵌类同名的成员变量或者方法时,会发生隐藏现象。这时,在成员内部类中,默认访问的是成员内部类的成员。如果要在成员内部类中访问外嵌类的同名成员,需要以下面的形式进行访问:外嵌类名.this.成员变量外嵌类名.this.成员
文档评论(0)