`

内部类的四种实现方式

 
阅读更多
内部类分为四种:

1.成员内部类
2.局部内部类
3.静态内部类
4.匿名内部类
1.成员内部类
Java code
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> //成员内部类......相当于非静态方法 class MemberInner { private int a = 3; public class Inner2 { private int a = 2; public void doSomething() { // 调用外部类的属性 System.out.println(MemberInner.this.a);// 这块要注意......很重要!!! System.out.println(a); } } } public class Test3 { public static void main(String[] args) { MemberInner.Inner2 inner2 = new MemberInner().new Inner2();// 非静态内部类要new实例 inner2.doSomething(); } }


2.静态内部类
Java code
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> //静态内部类......相当于静态方法 class StaticInner{ private static int a=3; public static class Inner{ public void test(){ System.out.println(a); } } } public class Test2 { public static void main(String[] args) { StaticInner.Inner inner=new StaticInner.Inner();//静态内部类直接调用 inner.test(); } }

3.局部内部类
Java code
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> //局部内部类......相当于局部变量 class LocalInner { public void doSomething(int b) { final int a = 3;// 只能访问final的变量 class Inner3 { public void test(int b) { System.out.println(b); System.out.println(a); } } new Inner3().test(b); } } public class Test4 { public static void main(String[] args) { LocalInner inner = new LocalInner(); inner.doSomething(4); } }
分享到:
评论

相关推荐

    内部类分类及应用

    内部类可以分为四种:成员内部类、静态嵌套类、方法内部类和匿名内部类。每种内部类都有其特点和应用场景。 一、成员内部类 成员内部类是指定义在外部类中的内部类。它们可以访问外部类的所有成员变量和方法,无论...

    Java4Android 35_内部类和匿名内部类

    2. **简化代码**: 当需要实现一个接口,但只用一次时,匿名内部类提供了一种简洁的实现方式。 3. **封装**: 内部类可以用于封装特定逻辑,使其在外部类中保持隐藏,增加代码的封装性和安全性。 4. **线程**: ...

    内部类 匿名内部类 内部接口 对比说明

    内部类有四种主要类型: 1. **成员内部类(实例内部类)**:它作为外部类的成员存在,与字段和方法并列。成员内部类可以访问外部类的实例变量,但不能有静态属性和方法(final的除外)。创建成员内部类的实例时,...

    java 内部类使用(内部匿名类)

    内部类分为几种类型,包括成员内部类、局部内部类、匿名内部类以及方法参数内部类。 1. **成员内部类**:成员内部类就像是外部类的一个普通成员,可以是静态或非静态的。非静态内部类拥有对外部类的引用,可以直接...

    java中的匿名内部类总结

    实例 4: Thread 类的匿名内部类实现 在这个例子中,我们使用匿名内部类来实现Thread类的run()方法。匿名内部类可以简洁的实现多线程编程。 实例 5: Runnable 接口的匿名内部类实现 在这个例子中,我们使用匿名...

    java内部类详解

    内部类主要分为四种类型:静态内部类、成员内部类、局部内部类和匿名内部类。 1. 静态内部类(Static Inner Class) 静态内部类与普通的类类似,只是它们定义在外部类中,并且前面带有 `static` 关键字。它们不会...

    java代码笔记2010-06-01:Java内部类 静态内部类 局部内部类 明明内部类;StringBuffer reverse的使用;

    内部类可以分为四种类型:静态内部类、成员内部类(非静态内部类)、局部内部类和匿名内部类。 1. **静态内部类**: 静态内部类与普通的成员内部类不同,它不持有对外部类的引用。因此,可以像其他静态成员一样,...

    JAVA内部类总结

    4. **内部类访问外部类**:非静态成员内部类可以通过`this`关键字访问外部类中的成员变量和方法。如果外部类的方法中存在同名变量,则可以通过`外部类.this.变量`的方式访问外部类的成员变量。 #### 三、静态成员...

    内部类的使用

    首先,内部类分为四种类型:成员内部类、局部内部类、匿名内部类和静态内部类。成员内部类就像其他成员变量一样,可以直接访问外部类的所有成员,包括私有成员。局部内部类只存在于某个方法内,它的作用范围更小,...

    内部类知识总结3--匿名内部类

    匿名内部类是内部类的一种特殊形式,它没有类名,常用于一次性创建的对象,特别是在需要实现一个接口或继承一个类,但又不需要额外的方法时。例如,事件监听器的回调函数常常使用匿名内部类来实现。 2. **匿名内部...

    Java 深入理解嵌套类和内部类

    非静态嵌套类可以分为三种:在一个类中直接定义的内部类、在一个方法中定义的内部类和匿名内部类。匿名内部类是指没有名字的内部类,通常用于实现某个接口或继承某个类。 四、在外部类中定义内部类 在外部类中定义...

    内部类的分类及各自用法

    下面将详细介绍每种类型的内部类及其特点和使用方法。 #### 成员内部类 成员内部类(也称为非静态内部类)是定义在一个外部类中的成员类,它可以访问外部类的所有成员变量和方法,包括私有成员。成员内部类的一个...

    JAVA 内部类 PPT

    - **局部内部类**:定义在方法、构造器或块中的类称为局部内部类,它的作用域仅限于该方法、构造器或块。 - **匿名类**:没有名字的内部类,通常用于一次性实现某个接口或父类的简单功能。 2. **内部类继承** - ...

    Java内部类总结

    本文将围绕Java内部类进行深入探讨,包括内部类的基本概念、创建方式、访问控制以及一些高级用法。 #### 一、内部类概述 Java内部类主要包括以下几种类型:成员内部类(非静态内部类)、静态内部类(也称为静态...

    java 内部类 局部内部类 匿名类 实例代码

    本篇文章将深入探讨Java中的四种内部类:实例内部类、局部内部类、匿名类和静态内部类,并通过实例代码进行详细解析。 1. **实例内部类**:这是最常见的内部类形式,它在外部类的实例方法或成员位置定义。实例内部...

    第11章 内部类(Inner class).ppt

    - 虽然名为“内部类”,但Java也允许接口嵌套在其他接口或类中,这与类的内部类相似,提供了一种组织接口的方式。 5. **内部类访问外部类成员**: - 内部类可以直接访问外部类的所有成员,包括私有成员,这是内部...

    java内部类总结(含概念和实例)

    4. 匿名内部类:匿名内部类是指没有名字的内部类,通常用在创建实例时使用。 为什么需要内部类? 内部类提供了某种进入其外围类的窗口。使用内部类最吸引人的原因是,每个内部类都能独立地继承自一个(接口的)...

    接口,内部类,抽象类概念和区别

    内部类分为四种类型:成员内部类、局部内部类、匿名内部类和静态内部类。成员内部类就像普通的类成员,可以有自己的访问修饰符;局部内部类只存在于方法或块的范围内;匿名内部类通常用于快速创建一个简单的类实例,...

    内部类代码

    1. 数据封装:内部类可以访问外部类的私有成员,提供了一种封装数据的方式,增强代码的安全性。 2. 实现策略模式:内部类可以作为策略的实现,根据需要选择不同的内部类,实现策略的动态切换。 3. 封装回调函数:...

Global site tag (gtag.js) - Google Analytics