版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Java基础_内部类、静态内部类、成员内部类、局部内部类、匿名内部类内部类:使用内部类减少了命名冲突。一个内部类可以定义在一个类中,一个方法中甚至一个表达式中。内部类分为四种:静态内部类(static inner classes)成员内部类(member inner classes)局部内部类(local inner classes)匿名内部类(anonymous inner classes)1、静态内部类(static inner classes)最简单的内部类。只能访问外部类的静态成员变量与静态方法。生成静态内部类对象的方法:OuterClass.InnerClass inner = ne
2、w OuterClass.InnerClass();1.1、相关使用例子:静态内部类:classStaticInner2 private static int a = 1;34 /*5 * 静态内部类6 * 生成的类名:StaticInner$InnerClass7 */8 public static class InnerClass9 /静态内部类可以声明静态的成员变量,其他的内部类不可以10 private static int b = 1;11 public void execute()12 /静态内部类只能访问静态程序13 System.out.println(a + b);14 15
3、 16 main方法中使用:1 public static void main(String args) 2 /创建静态内部类3 StaticInner.InnerClass innerClass = new StaticInner.InnerClass();4 innerClass.execute();5 2、成员内部类(member inner classes):成员内部类可以访问外部类的静态与非静态的方法和成员变量。生成成员内部类对象的方法:OuterClass.InnerClass inner = new OuterClass().new InnerClass();在局部内部类中访问外
4、部类的成员变量的方法:OuterClass.this.a;2.1、相关使用例子:成员内部类:1classMemberInnerprivate int a = 1;34 public void execute()5 /在外部类中创建成员内部类6 InnerClass innerClass = this.new InnerClass();7 89 /*10 * 成员内部类11 */12 public class InnerClass1314 /内部类可以创建与外部类同名的成员变量15 private int a = 2;1617 public void execute()18 /this引用的是内
5、部类19 System.out.println(this.a);20 /在内部了中使用外部类的成员变量的方法21 System.out.println(MemberInner.this.a);22 23 24 在main方法中使用:1 public static void main(String args) 2 /创建成员内部类3 MemberInner.InnerClass innerClass = new MemberInner().new InnerClass(); 4 innerClass.execute();5 3、局部内部类(local inner classes):类似于局部变量
6、,不能定义为public,protected,private或者static类型。定义方法中,只能方法中声明为final类型的变量。3.1、相关使用例子:局部内部类:1 class LocalInner3 public void execute()4 final int a = 1;5 /*6 * 创建局部内部类7 */8 class InnerClass9 public void execute()10 System.out.println("LocalInner Class");1112 /局部内部类只能访问final类型的变量13 System.out.println
7、(a);14 15 16 /只能在所在方法区域创建17 new InnerClass().execute();18 19 在main方法中使用:1publicstatic void main(String args) 2 /外部不能直接创建局部内部类3 LocalInner localInner = new LocalInner();4 localInner.execute();5 4、匿名内部类(anonymous inner classes):匿名内部类没有类名,没有class关键字也没有extends和implements等关键字修饰。匿名内部类会隐式地继承一个父类或实现一个接口。4.1
8、、相关使用例子:1 public static void main(String args) 2 AnonymousInnerClassTest test = new AnonymousInnerClassTest(); 34 /*5 * 创建匿名内部类6 * 生成的类名:AnonymousInnerClassTest$17 */8 test.print(new Date()9 /重写toString()方法10 Override11 public String toString() 12 return "Hello world."13 14 );1516 JButton button = new JButton();1718 /*19 * 创建匿名内部类20 * 该匿名内部类实现ActionListener接口21 * 生成的类名:AnonymousInnerClassTest$122 */23 button.addActionListener(new ActionListener()24 /实现接口中的方法25 Override26 public void actionPerformed(ActionEvent e)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年山东省肥城市高考物理周测考试卷附参考答案详解(综合题)
- 2026年湖南省津市市高考物理一轮复习试卷含答案详解【巩固】
- 2026广东中山大学孙逸仙纪念医院深汕中心医院院长办公室合同事务岗位招聘1人考试备考试题及答案详解
- 2026年吉林省德惠市高考物理强基计划测试卷附答案详解(综合卷)
- 2025年黑龙江省铁力市高考物理三轮冲刺考试卷附参考答案详解(轻巧夺冠)
- 2026贵州护理职业技术学院引进高层次人才7人笔试参考试题及答案详解
- 2026年山东省禹城市高考物理学业考试模拟卷【历年真题】附答案详解
- 2026年吉林省图们市高考物理真题汇编考试卷附参考答案详解【达标题】
- 2026年辽宁省盖州市高考物理二轮专题考试卷附参考答案详解【基础题】
- 2025年江苏省如皋市高考物理真题汇编考试卷(含答案详解)
- 《产业经济学》期末考试复习题库(含答案)
- 自编MSA(计数型)自动分析表
- 北京工业大学《嵌入式系统》2022-2023学年期末试卷
- GB/T 2977-2024载重汽车轮胎规格、尺寸、气压与负荷
- 深圳市步行和自行车交通系统规划设计导则
- 2024年浙江省中考英语试题卷(含答案解析)
- 经鼻高流量湿化氧疗护理
- 天津耀华嘉诚国际中学2024届高一下数学期末质量检测试题含解析
- 传染病相关知识及上报流程
- 人工智能在金融营销中的应用
- 小学二年级语文学业水平无纸化测评方案三篇范文
评论
0/150
提交评论