Java基础_内部类、静态内部类、成员内部类、局部内部类、匿名内部类_第1页
Java基础_内部类、静态内部类、成员内部类、局部内部类、匿名内部类_第2页
Java基础_内部类、静态内部类、成员内部类、局部内部类、匿名内部类_第3页
Java基础_内部类、静态内部类、成员内部类、局部内部类、匿名内部类_第4页
Java基础_内部类、静态内部类、成员内部类、局部内部类、匿名内部类_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论