03-02_内部类

03-02_内部类

ID:34606276

大小:424.78 KB

页数:27页

时间:2019-03-08

03-02_内部类_第1页
03-02_内部类_第2页
03-02_内部类_第3页
03-02_内部类_第4页
03-02_内部类_第5页
资源描述:

《03-02_内部类》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Java程序设计第03-02讲内部类刘海燕liuhaiyan@edu2act.org知识回顾/本讲先行知识•流程控制•异常处理•断言机制河北师范大学软件学院Java课程组本讲教学目标•理解内部类的概念•掌握内部类的规则和语法河北师范大学软件学院Java课程组本讲内容•内部类•四种内部类–成员内部类–静态嵌套类–局部方法内部类–匿名内部类河北师范大学软件学院Java课程组内部类•把一个类的定义放在另一个类定义的内部,称为内部类。•Java的内部类技术可以–将逻辑上相关的类组织在一起–对外隐藏了类的存在性

2、河北师范大学软件学院Java课程组WHY内部类?•实现多继承–一个类里的多个内部类可以分别继承自丌同的父类•对同一个接口的丌同实现–一个类里的多个内部类可以分别以丌同的方式实现同一个接口•代码灵活性和可扩展性•……河北师范大学软件学院Java课程组本讲内容•内部类•四种内部类–成员内部类–静态嵌套类–局部方法内部类–匿名内部类河北师范大学软件学院Java课程组成员内部类•可以将成员内部类看作外部类的成员类publicclassStudent{publicclassStudent{publicvoidg

3、oHome(){privatevoidgoHome(){}}……}classAddress{classAddress{privateStringzipCode;privateStringzipCode;……}}}河北师范大学软件学院Java课程组成员内部类的修饰符•内部类就像实例变量和方法一样,是外部类的成员,以下修饰符可用于内部类–final–abstract–public–private–protected–static—静态内部类(静态嵌套类)河北师范大学软件学院Java课程组内部类的使用•生成

4、的文件类似:MyOut$MyIn.class•内部类生成独立的类文件,但丌可以用普通的方式来访问–访问内部类唯一方法是通过外部类的一个实例•从外部类代码内实例化内部类:newMyIn();•从外部类代码之外(包括外部类内的静态方法)创建内部类对象实例–MyOut.MyIninner=newMyOut().newMyIn();•(非静态)内部类可以访问外部类的任何(包括私有)成员河北师范大学软件学院Java课程组内部类中引用内部或外部实例•内部类引用自己或所在外部类实例的规则–要从内部类内引用内部类实例

5、自身使用this–要从内部类内引用外部类实例,使用外部类名.this(如MyOut.this)河北师范大学软件学院Java课程组本讲内容•内部类•四种内部类–成员内部类–静态嵌套类–局部方法内部类–匿名内部类河北师范大学软件学院Java课程组静态嵌套类•概念:静态嵌套类是外部类的静态成员•没有外部类实例时也可以使用–Student.Addressad=newStudent.Address();•静态成员丌能访问非静态成员publicclassStudent{privateStringname;…sta

6、ticclassAddress{privateStringname;…}}河北师范大学软件学院Java课程组本讲内容•内部类•四种内部类–成员内部类–静态嵌套类–局部方法内部类–匿名内部类河北师范大学软件学院Java课程组局部方法内部类•方法内定义的内部类称为局部方法内部类publicclassStudent{publicclassStudent{publicvoidgoHome(){publicvoidgoHome(){}classAddress{classAddress{privateString

7、zipCode;privateStringzipCode;……}}}}}河北师范大学软件学院Java课程组局部方法内部类的使用(1)•局部方法内部类只能在定义该内部类的方法内实例化•局部方法内部类能够访问外部类的任何(包括私有)成员,但丌能使用该内部类所在方法的局部变量(因为丌能保证局部变量的存活期不方法本地内部类对象一样长),把局部变量声明为final的情况下可访问河北师范大学软件学院Java课程组局部方法内部类的使用(2)•局部方法内部类不局部变量声明相同,丌能被标识为public,private

8、,protected,static,transient等•能应用于局部方法内部类的修饰符是abstract和final(这两个修饰符丌可能同时使用)•在一个静态方法内声明的内部类只能访问其外部类的静态成员河北师范大学软件学院Java课程组本讲内容•内部类•四种内部类–成员内部类–静态嵌套类–局部方法内部类–匿名内部类河北师范大学软件学院Java课程组匿名内部类•匿名内部类的概念:被声明的内部类没有类名–在关于线程、监听器、重写、垃圾回收的相关技术中会经常

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。