版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PART4.3.2内部类在Java程序中,可以将一个类定义在另一个类里面或者一个方法里面,这样的类称为内部类。内部类是外部类的一个成员。内部类可以分为成员内部类、方法内部类和匿名内部类。4.3.2内部类1.成员内部类成员内部类是最普通的内部类,它是定义在另一个类的内部;4.3.2内部类class外部类{//外部类体class内部类名{//内部类体}}4.3.2内部类成员内部类可以无条件访问外部类的所有成员属性和成员方法,不过要注意,当成员内部类拥有和外部类同名的成员变量或者方法时,默认情况下访问的是成员内部类的成员4.3.2内部类成员内部类可以无条件的访问外部类的成员,而外部类想访问成员内部类的成员,必须先创建一个成员内部类的对象,再通过指向这个对象的引用来访问。4.3.2内部类成员内部类是依附外部类而存在的,也就是说如果要创建成员内部类的对象,必须存在一个外部类的对象,再通过外部类对象来创建内部类对象。4.3.2内部类例4-14成员内部类定义。packagechapter4;classouter{ intm=0;//定义类的成员变量 voidtest1(){//定义一个成员方法test1 System.out.println("外部类成员方法test1()"); }classInner{//定义了一个成员内部类Inner intn=2;4.3.2内部类voidshow(){//在成员内部类的方法中访问外部类的成员变量m System.out.println("外部成员变量m="+m); test1(); } voidshow1(){ System.out.println("内部成员方法show1"); }}4.3.2内部类voidtest2(){//外部类方法test2 Innerinner=newInner();//实例化内部类对象inner System.out.println("内部成员变量n="+inner.n);//访问内部类变量n inner.show1();//访问内部类方法show1}}publicclassexample4_14{ publicstaticvoidmain(String[]args){4.3.2内部类outerout=newouter();//实例化外部类对象outouter.Innerinner=out.newInner();//实例化内部类对象innerinner.show();//在内部类中访问外部类的成员变量m和成员方法test1()out.test2();//在外部类中访问内部类的成员变量n和成员方法show1() }}程序运行结果:4.3.2内部类2.方法内部类方法内部类是定义在一个方法体里面的类,它和成员内部类的区别在于方法内部类的访问仅限于方法内部。方法内部类就像是方法体里面的一个局部变量。在方法内部类中,方法内部类可以访问外部类的所有成员变量和方法,而方法内部类中变量和方法只能在所属方法中被访问。4.3.2内部类例4-15方法内部类的定义和使用。packagechapter4;classOuter1{intm=0;//定义类的成员变量voidtest1(){//下面的代码定义了一个成员方法,方法中访问内部类System.out.println("外部类成员方法");}4.3.2内部类voidtest2(){classInner{//下面的代码定义了一个成员内部类intn=1;voidshow(){//在成员内部类的方法中访问外部类的成员变量System.out.println("外部成员变量m="+m);test1();}4.3.2内部类}Innerinner=newInner();System.out.println("局部内部类变量n="+inner.n);inner.show();}}publicclassexample4_15{publicstaticvoidmain(String[]args){Outer1outer=newOuter1();outer.test2();}}程序运行结果:4.3.2内部类3.静态内部类静态内部类是使用static关键字修饰的作为成员的内部类。和成员内部类相比,在形式上,静态内部类只是在内部类前面增加了static关键字,而在功能上,静态内部类只能访问外部类的静态成员,通过外部类访问静态内部类成员时,可以跳过外部类直接访问静态内部类。4.3.2内部类外部类名.静态内部类名
变量名=new外部类名().静态内部类名();4.3.2内部类例4-16静态内部类的定义与使用。packagechapter4;classOuter2{staticintm=0;//定义类的成员变量staticclassInner{//下面的代码定义了一个静态内部类intn=1;voidshow(){System.out.println("外部静态变量m="+m);//在静态内部类的方法中访问外部类的成员变量}4.3.2内部类}}publicclassexample4_16{publicstaticvoidmain(String[]args){Outer2.Innerinner=newOuter2.Inner();inner.show();}}程序运行结果:4.3.2内部类4.匿名内部类相比于其他类型的内部类,匿名内部类应该是平时我们编写代码时用的最多的。如果一个类在整个操作中只使用一次的话,就可以将其定义成匿名内部类。4.3.2内部类4.匿名内部类相比于其他类型的内部类,匿名内部类应该是平时我们编写代码时用的最多的。如果一个类在整个操作中只使用一次的话,就可以将其定义成匿名内部类。4.3.2内部类new类名(参数列表)或接口(){//匿名内部类实现部分}
匿名内部类一般用来实现接口。4.3.2内部类例4-17匿名内部类。packagechapter4;interfaceApple{
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 智慧城市建设项目投资回报率分析报告
- 数字化技术在文化传承中的应用与创新研究
- 数字孪生与工业物联网的融合发展
- 物联网技术及应用领域发展前景分析
- 工程管理部工程项目管理与执行报告
- 集团企业内部组织架构的统一与分散管理
- 教育技术革新下的中小学STEAM课堂设计策略分析基于V R的跨学科实践
- 新媒体运营推广策略与实践教程
- 网络主播直播技巧与职业素养培训计划
- 农村电商与家庭农场的融合发展研究
- 2025年江苏单招校测真题及答案
- 2021海康威视DS-AT1000S超容量系列网络存储设备用户手册
- 设施设备安全检查培训课件
- 2025至2030中国汽车改装套件行业项目调研及市场前景预测评估报告
- 2026年高考历史一轮复习:通史提纲(必修+选择性必修 知识提纲融合版)
- 学堂在线 雨课堂 学堂云 研究生生涯发展与规划 章节测试答案
- 传播学研究方法 课件 ch16-扎根、质化资料与内容分析-化零散为系统
- 支气管哮喘急性发作伴感染
- (正式版)DB35∕T 2250-2025 《免陪照护病区服务规范》
- 内蒙古自治区安全生产培训机构基本条件
- 2025年江西省中考数学试卷真题(含标准答案)
评论
0/150
提交评论