- 1、本文档共82页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
05 高级语法
5 Java语言高级语法 内容 内部类与匿名类 面向对象程序设计基本思想 变量的作用域与变量传递问题 对象的初始化顺序问题 垃圾回收与finalize()方法 泛型 枚举 *反射 内部类 内部类是在一个类的内部嵌套定义的类,它可以是其它类的成员,也可以在一个语句块的内部定义,还可以在表达式内部匿名定义(称为匿名内部类)。 内部类 内部类的作用主要有三点: 内部类的方法可以访问外部类的所有数据,包括私有数据 内部类可以对同一包中的其他类隐藏起来 在GUI程序设计中,经常需要写一些“回调方法”,这时使用匿名内部类比较便捷。 示例:InnerTest.java 除内部类以外,也可以有“内部接口” 匿名内部类 没有类名 常常用在图形用户界面 (GUI) 设计中,进行各种事件处理 例如: 鼠标事件、按钮事件和键盘事件等 在“图形用户界面”一章中,我们将看到大量的有关匿名内部类的例子。我们将在那时详细讲解。 局部内部类 内部类还可以出现在方法内部,称为局部内部类。 局部内部类的生命周期及可见性只限于方法内部。 示例: GeneralClass.java 静态内部类 静态内部类就是用static关键字修饰的内部类,这个类相当于一个外部定义的类。 静态内部类中可以声明静态的成员(相反,非静态内部类中不能有静态成员)和非静态的成员。 因为“静态的只能访问静态的”,因此静态内部类只能访问外部类的静态成员。 示例: 教材P206: StaticOuter.java 内部类的特性 内部类有如下特性: 一般用在定义它的类或语句块之内,在外部引用它时必须给出完整的名称,名字不能与包含它的类名相同 可以使用宿主类的静态和实例成员变量,包括私有变量,也可以使用它所在方法的局部变量。 可以定义为abstract。 可以声明为private或protected。 若被声明为static,就变成了顶层类,不能再使用局部变量和实例变量 内部类的优缺点 优点:节省编译后产生的字节码文件的大小 ,并使得程序变得紧凑 优点:内部类是实现封装性的一种手段,如果一个类A只在某个类B中使用,则可使A成为B的私有的内部类,从而对其他的类不可见。 缺点: 有时会使程序结构变得不清楚,降低可读性 实验题 1. 写一个Eatable接口,内有一howToEat()方法。再写一个Banana类,实现该接口;另外再任意写一个类,也实现该接口。写一个main()方法测试所写的类。 2. 在上述程序的基础上,将Eatable接口放到package one中;在package two中写Banana类,其中有一个内部类InBanana,它实现了Eatable接口;在package three中,写一个YellowBanana类继承Banana类,在YellowBanana类的一个方法getInner中返回该内部类的对象,在返回时向上转型为Eatable接口的类型。写一个main()方法测试YellowBanana类。将上述三个包中的类文件打包成jar包。 面向对象程序设计基本思想 将问题按照类/对象进行分解 分析每个类具有的属性和方法 分析每个类/对象之间的关系 is-a has-a use-a Java面向对象程序设计小结 封装 将数据和相关方法组装在一起构成类 将相关的类放在包中 设置成员的访问权限 内部类 Java面向对象程序设计小结 继承 子类从父类继承成员 一个接口继承多个接口 一个类实现多个接口 Java面向对象程序设计小结 多态 重载:多个方法有相同的名称,但参数列表不同。 覆盖:子类定义与父类相同的实例方法(同名、同参数列表,返回值)。 隐藏:子类定义与父类相同的类方法。 接口:各个类对同一个接口有不同的实现方式。 如果把引用变量转换为子类类型,称为向下转型,如果把引用变量转换为父类类型,称为向上转型。 成员变量、静态方法按照引用变量声明的类型静态绑定;实例方法按照引用变量引用的实例动态绑定 作业(2选1, 直接上传源代码) 1. 给定一个正整数,统计其中出现最多的数字。若出现几个数字个数一样的情况,则以最大的数字为准,例如1输出1,1321输出1,423231输出3。 2. 写一个一元多项式类,实现多项式的加法、求导、求值等运算。要求覆盖toString()方法以实现对象自身的打印(采用降幂写法)。 变量的作用域范围 作用域范围:程序中能够使用该变量(成员变量与局部变量)的范围 分类: 类作用域范围和块作用域范围 类作用域范围 从类定义的第一个“{”开始,到 最后一个“}”结束 在类的范围内,类的成员方法能直接访问所有的成员变量 块作用域范围 从变量声明之处,到该块的最后一个“}” 例如: 局部变量、方法的参数 在子块的内部定义与外围块中同名的变量是允许的
您可能关注的文档
- 2012教代会提案工作报告.doc
- 奏响盐业最美丽的华章1.3.doc
- 谈项目教学法在课程教学中的规划与实施——以高职汽车故障检测与维修课程为例.pdf
- 儿童 简易画.doc
- 心理班会课:学会理解与宽容.doc
- (苏教版)2013文言文复习必修四、五 课文中重点字词默写卷.doc
- (车工工艺学 期末考试).doc
- 05前尾巷更换风筒安全措施1.17.doc
- 08年底新行标列表.doc
- 08级通信高频实验.pdf
- ASX_Series_操作说明书手册.pdf
- Battery-Backup-Kit-Installation-操作说明书手册.pdf
- DCB-05-V2-操作说明书手册.pdf
- DEIMOS-Installation-操作说明书手册.pdf
- Axess-Pro-Series-2120-Roller-Shutter-Pendant-操作说明书手册.pdf
- Controll-A-Door-P-Diamond-操作说明书手册.pdf
- Controll-A-Door-PD-Power-Drive-操作说明书手册.pdf
- Controll-A-Door-Secure-SDO-6-操作说明书手册.pdf
- AMX_Series_操作说明书手册.pdf
- ELI-250-Installation-操作说明书手册.pdf
最近下载
- 中华人民共和国机械行业标准燃煤热风炉技术条件.PDF
- 武汉市光谷为明实验学校新初一分班语文试卷含答案.pdf VIP
- 浙江大学紫金港校区校园平面图.PDF VIP
- 中级车号员(长)试题及答案.pdf VIP
- 铁路车号员(长):中级车号员(长)测试题.docx VIP
- 铁路车号员(长)中级车号员(长)试卷(铁路车号员(长)).doc VIP
- 铁路车号员(长)车号员一体化考试试卷(铁路车号员(长)).doc VIP
- 铁路车号员(长)铁路车号员(长)综合练习试卷(铁路车号员(长)).doc VIP
- 铁路车号员(长)铁路车号员(长)综合练习试卷.doc VIP
- 初中数学高质量作业设计策略与实践.pptx
文档评论(0)