匿名内部类真的很神秘的,不过,这种类就喜欢做一些神秘的东西。想想,匿名内部类,根本就没有名,怎么写它的构造函数呀?如里是一个默认的构造函数,如果带上了参数这又应该怎么办?很神秘的东西。
看一段代码:
abstract class B{
public B(int i){
System.out.println("i="+i) ;
}
abstract public void play() ;
}
class Bout
{
public void show(int a,final int b){
new B(a){
public void play() {
int c = b ;
}
};
}
}
这个代码编译不会有问题,会出现三个class文件的,对于Bout类就产生了两个class文件(Bout.class与Bout$1.class),这里面其实有些很隐含的东西的,反编译一下class文件来看看:
对于Bout类:
这里竟调用了Bout$1的三个参数的构造函数。
看看Bout$1真的有三个参数的构造函数吗?
里面真的有三个参数的构造函数呀,还调用了一个父类的一个参数构造函数了。这里编译器还给它生成了一个val$b的变量,把第三个变量放到这里面去了,这个就实现了构造函数的功能了;再看那个调用了父类的那个参数,其实就是第二个参数。就是这样子了。看多几眼上面的图,就明白。
- 大小: 27.2 KB
- 大小: 7.9 KB
分享到:
相关推荐
Java 中的匿名内部类总结 Java 中的匿名内部类是一种特殊的内部类,它没有名字,因此也称为匿名类。匿名内部类是一种简洁的编程方式,能够简化代码编写,但它也有一些限制和特点。 匿名内部类的定义 匿名内部类是...
这个"匿名内部类实现接口回调"的示例旨在演示如何通过匿名内部类来简化回调函数的实现。下面我们将详细探讨接口回调的概念、匿名内部类的使用以及它们在实际编程中的应用。 首先,让我们理解什么是接口回调。接口回...
Java匿名内部类是Java语言中一个独特且强大的特性,它允许我们在不需要定义一个单独的类的情况下创建类的实例。这在处理回调、事件监听、单例模式以及其他需要短时间内定义一个简单类的情况时非常有用。本篇文章将...
在Java编程中,匿名内部类主要用于事件处理、回调机制、简化代码以及实现特定功能的短暂对象。 1. **接口实现**: Java匿名内部类可以用来直接实现一个接口,无需为这个接口创建单独的实现类。这在处理事件监听时...
在Java编程语言中,内部类和匿名内部类是两种特殊类型的类,它们为代码的组织和功能实现提供了独特的灵活性。本教程"Java4Android 35_内部类和匿名内部类"深入探讨了这两个概念,旨在帮助开发者更好地理解和运用它们...
内部类可以是静态的,也可以是非静态的,而匿名内部类则是一种没有名字的内部类,通常用于快速实现简单的回调或者接口实现。这篇总结将深入探讨匿名内部类的相关知识点。 1. **匿名内部类的概念** 匿名内部类是...
内部类分为几种类型,包括成员内部类、局部内部类、匿名内部类以及方法参数内部类。 1. **成员内部类**:成员内部类就像是外部类的一个普通成员,可以是静态或非静态的。非静态内部类拥有对外部类的引用,可以直接...
在Java编程语言中,匿名内部类是一种特殊的类,它没有名字,通常用于简化代码和实现特定功能,如事件处理或接口快速实现。在Android开发中,匿名内部类的应用尤其广泛,因为Android框架中的许多组件(如按钮、文本...
在Android开发中,匿名内部类是一种常见的编程技巧,它允许我们快速实现事件监听功能,而无需定义单独的类。本文将深入探讨如何使用匿名内部类作为事件监听类,以及其在Android开发中的应用。 首先,我们需要理解...
匿名内部类是Java编程语言中一个独特且强大的特性,它允许我们在需要的地方直接定义一个类的实例,而无需声明一个独立的类。这种类没有名字,通常用于实现接口或者继承抽象类,尤其在事件处理、回调函数以及创建一次...
在Java编程语言中,匿名...总之,匿名内部类是Java中一种强大的工具,它能够提高代码的可读性和简洁性,尤其是在处理一次性任务和需要回调函数的场合。通过学习和实践,开发者可以更好地利用这个特性来优化他们的代码。
- **简洁的代码**:在只需要一次使用的复杂逻辑或回调函数时,使用匿名内部类可以简化代码。 6. **经典例子** - **匿名内部类作为参数**: ```java interface MyInterface { void myMethod(); } public ...
本文将详细探讨内部类、匿名内部类以及内部接口的对比和使用。 首先,让我们了解一下内部类的基本概念。内部类定义在其他类的内部,编译后会生成两个独立的类文件。内部类能够自由地访问外部类的所有成员,包括私有...
16.java匿名内部类.zip16.java匿名内部类.zip16.java匿名内部类.zip16.java匿名内部类.zip16.java匿名内部类.zip16.java匿名内部类.zip16.java匿名内部类.zip16.java匿名内部类.zip16.java匿名内部类.zip16.java匿名...
然而,不当使用Handler,尤其是结合匿名内部类或非静态内部类,可能导致内存泄漏和Native内存增加,这对应用性能和稳定性造成负面影响。 首先,我们要理解内存泄漏的概念。内存泄漏是指程序中已分配的内存没有被...
内部类分为成员内部类、局部内部类和匿名内部类。成员内部类就像是外部类的一个成员变量,可以在外部类的任何地方使用;局部内部类则定义在方法或代码块内,其作用域仅限于该方法或代码块。例如: ```java public ...
8. **使用场景**:匿名内部类常用于事件处理、线程实现、回调函数等,如Swing组件的事件监听,`Runnable`接口的实现,以及自定义比较器`Comparator`等。 总的来说,匿名内部类提供了一种灵活的代码结构,可以在需要...
使用swift匿名内部类,实现jave匿名内部类功能,java中的匿名内部类,可以做到的是,就是想要重写一个类中的方法,并且执行,但是不想重新定义一个类,因为只调用一次,或者调用多次,但是每次调用的实现过程都不同,这时候就...
### 内部类的相关知识-静态内部类,匿名内部类…… #### 一、内部类概述 内部类(Inner Class)是 Java 中一种特殊类的定义方式,它允许在一个类的内部定义另一个类。这种设计模式提供了更为灵活的编程机制,可以...