今天没事,抽出时间总结了一下很多开发人员都想弄明白的一些JAVA基础知识(内部类和匿名内部类)。
一、JAVA中内部类和匿名内部类的区别
内部类:内部类可以是static的或者非static的,static内部类只能包含静态方法和静态类变量,只能访问外部类的静态元素,内部类可以实例化,多次使用。
匿名内部类:它只能使用一次,不区分static和非static。如果用到外部类的变量的话,必须是类变量或者实例变量,就是必须是类定义的变量,或者final的局部变量。匿名内部类如果是继承某个类的话是可以重写那个类的方法的,这个和普通内部类一样。
总结:可以用匿名内部类的地方都可以用内部类替换,但是用匿名内部类编码非常简洁,也容易读懂,除非你需要多次使用那个内部类,不然建议还是使用匿名内部类。
二、内部类的使用时机
1、实现事件监听器的时候(比方说actionListener 。。。采用内部类很容易实现);
2、编写事件驱动时(内部类的对象可以访问外部类的成员方法和变量,注意包括私有成员);
3、在能实现功能的情况下,为了节省编译后产生的字节码(内部类可以减少字节码文件,即java文件编译后的.class文件);
三、匿名内部类的使用时机
匿名内部类是内部类的一种特殊情况。它只有一个实例,而且没有引用。所以,一般在能用内部类实现,但是实例只用一次的情况下使用它(可以减少资源开销);
以上是本人通过几年的开发经验总结的。希望能对您一些JAVA初学者有所帮助。如果有什么不足或不对的地方,还请高手们指点。
分享到:
相关推荐
Java内部类是Java语言提供的一种独特机制,它允许在一个类的内部定义另一个类。这种设计模式使得代码结构更紧凑,可以更好地封装和隐藏实现细节,同时也增强了代码的复用性。内部类分为几种类型,包括成员内部类、...
Java匿名内部类是Java语言中一个独特且强大的特性,它允许我们在不需要定义一个单独的类的情况下创建类的实例。这在处理回调、事件监听、单例模式以及其他需要短时间内定义一个简单类的情况时非常有用。本篇文章将...
在Java编程语言中,内部类和匿名内部类是两种特殊类型的类,它们为代码的组织和功能实现提供了独特的灵活性。本教程"Java4Android 35_内部类和匿名内部类"深入探讨了这两个概念,旨在帮助开发者更好地理解和运用它们...
Java 中的内部类和匿名类 Java 中的内部类(Inner Class)可能很多人不太熟悉,实际上类似的概念在 C++ 里也有,那就是嵌套类(Nested Class)。内部类从表面上看,就是在类中又定义了一个类,而实际上并没有那么...
因此,应谨慎选择何时使用内部类和匿名类,确保它们的使用符合设计原则和代码规范,同时避免常见的错误,如未正确处理内部类与外部类的引用关系,以及在不必要的情况下使用匿名类。通过理解这些特性的工作原理和适用...
Java匿名内部类是Java语言中一个独特且强大的特性,它允许我们在不定义单独类的情况下创建对象。这种类没有名字,通常用作一次性实现某个接口或继承某个类的需求。在Java编程中,匿名内部类主要用于事件处理、回调...
Java内部类是Java语言特性中一个独特而强大的部分,它允许在一个类的内部定义另一个类。内部类可以访问外部类的所有成员,包括私有成员,这使得内部类在实现某些特定设计模式时非常有用。本篇文章将深入探讨Java中的...
匿名内部类可以使用在外部类的方法和构造方法中。 内部类是Java语言中的一种特殊类别,它可以访问外部类的所有成员变量和方法,包括私有的变量和方法。内部类可以分为四种:成员内部类、静态嵌套类、方法内部类和...
本文介绍内部类和匿名类在Java代码中是如何具体工作的,如何正确使用它们,以及如何避免一些常见的错误。 下面来看看这些特性具体是如何工作的? 1、非静态内部类 如果内部类没有指定static修饰符,拥有对...
内部类主要分为四种类型:静态内部类、成员内部类、局部内部类和匿名内部类。 1. 静态内部类(Static Inner Class) 静态内部类与普通的类类似,只是它们定义在外部类中,并且前面带有 `static` 关键字。它们不会...
总结一下,内部类、匿名内部类和内部接口在Java编程中提供了一种强大的工具,它们可以帮助我们更好地组织代码,实现封装和模块化。在Android开发中,它们常用于事件监听、线程管理、回调函数等场景,增强了代码的...
4. **匿名内部类(Anonymous Inner Classes)**:匿名内部类没有名字,它们通常用于实现接口或继承类。在创建匿名内部类的实例时,不需要单独定义类,而是直接在实例化时提供实现细节。匿名内部类特别适用于需要快速...
在描述中提到的"Cookie、Session、localStorage、sessionStorage区别和用法"这部分内容,虽然不是匿名内部类的主题,但它们是Java Web开发中的重要概念。Cookie是客户端存储数据的一种方式,而Session是服务器端存储...
在这个"java内部类使用例子"中,我们将深入探讨这些类型,并通过实际代码来理解它们的工作原理。 首先,成员内部类是在外部类的成员位置定义的类,它可以访问外部类的所有成员,包括私有成员。成员内部类的实例与...
Java语言中的静态内部类,也称为嵌套类,是内部类的一种特殊形式,它与非静态内部类(也称为成员内部类)相比有着独特的特点和使用场景。在深入探讨其使用规范之前,我们先理解静态内部类的基本概念。 静态内部类不...
3. 匿名内部类:没有名字的内部类,通常用作接口的匿名实现或创建一次性使用的类。 4. 静态内部类:与成员内部类类似,但可以独立于外部类实例存在,且不隐式持有外部类的引用。 内部类可以访问外部类的所有成员,...
Java内部类是Java语言中一个独特且强大的特性,它允许在一个类的定义内部定义另一个类。内部类可以访问外部类的所有成员,包括私有成员,这使得内部类在实现某些特定设计模式时非常有用。本篇文章将深入探讨Java内部...
匿名内部类没有名字,通常用于简化代码,特别是在创建监听器等场景中非常有用。匿名内部类是通过继承现有类或实现现有接口来创建的,但不显式定义类名。 ##### 3.2.4 静态内部类 静态内部类类似于成员内部类,但是...
在Java编程语言中,匿名内部类是一种特殊的类,它没有名字,通常用于简化代码和实现特定功能,如事件处理或接口快速实现。在Android开发中,匿名内部类的应用尤其广泛,因为Android框架中的许多组件(如按钮、文本...