`
LiYinlei
  • 浏览: 68463 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

匿名内部类

阅读更多
package cn.java.objectoriented;
/**
匿名内部类:内部类的简写格式。

前提:
	内部必须继承或者实现一个外部类或者外部接口。

匿名内部类其实就是一个子类匿名对象。

场景之一:
	当函数的参数是接口类型时,e而且该接口中的方法不超过3个时,
	可以给这个函数传递一个匿名内部类。这样书写较为简单。

格式: new 父类名or接口名(){}
*/

abstract class AbsDemo
{
	abstract void show();
}


//正常内部类
class OuterClass
{
	int num = 6;
	
	class Inner extends AbsDemo
	{
		void show()
		{
			System.out.println("正常内部类:num="+num);
		}
	}
	public void method()
	{
		new Inner().show();
	}
}

//匿名内部类方式
class OuterClass2
{
	int num = 6;
	
	public void method()
	{
		new AbsDemo()
		{
			void show()
			{
				System.out.println("匿名内部类:num+===="+num);
			}
		}.show();
	}
}

//匿名内部类实现接口的形式,和调用多方法情况
interface Inter
{
	void show1();
	void show2();
}

class OuterClass3
{
	int num=6;
	/*
	class Inner implements Inter
	{
		public void show1(){}
		public void show2(){}
	}
	*/
	public void function()
	{
//		Inner in = new Inner();
//		in.show1();
//		in.show2();
		Inter in = new Inter()
		{
			public void show1(){
				System.out.println("匿名内部类实现接口的形式show1: "+num);
			}
			public void show2(){
				System.out.println("匿名内部类实现接口的形式show2: "+num);
			}
		};
		in.show1();
		in.show2();
	}
}
public class InnerClassOfAnonymous {
	
	static int num=88;
	public static void main(String[] args) {
		new OuterClass().method();
		new OuterClass2().method();
		
		new OuterClass3().function();
		
		//实现接口的匿名内部类作为参数传递
		method2(new Inter() {
			public void show2() {
				System.out.println("实现接口的匿名内部类作为参数传递"+num);
			}
			public void show1() {
				System.out.println("实现接口的匿名内部类作为参数传递"+num);
			}
		});
	}
	
	public static void method2(Inter in)
	{
		in.show1();
		in.show2();
	}
}

 上面类InnerClassOfAnonymous的main方法的执行结果为:

正常内部类:num=6

匿名内部类:num+====6

匿名内部类实现接口的形式show1: 6

匿名内部类实现接口的形式show2: 6

实现接口的匿名内部类作为参数传递88

实现接口的匿名内部类作为参数传递88

2
4
分享到:
评论

相关推荐

    java 匿名内部类的使用规范

    Java匿名内部类是Java语言中一个独特且强大的特性,它允许我们在不需要定义一个单独的类的情况下创建类的实例。这在处理回调、事件监听、单例模式以及其他需要短时间内定义一个简单类的情况时非常有用。本篇文章将...

    java中的匿名内部类总结

    Java 中的匿名内部类总结 Java 中的匿名内部类是一种特殊的内部类,它没有名字,因此也称为匿名类。匿名内部类是一种简洁的编程方式,能够简化代码编写,但它也有一些限制和特点。 匿名内部类的定义 匿名内部类是...

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

    在Java编程语言中,内部类和匿名内部类是两种特殊类型的类,它们为代码的组织和功能实现提供了独特的灵活性。本教程"Java4Android 35_内部类和匿名内部类"深入探讨了这两个概念,旨在帮助开发者更好地理解和运用它们...

    Java 匿名内部类

    Java匿名内部类是Java语言中一个独特且强大的特性,它允许我们在不定义单独类的情况下创建对象。这种类没有名字,通常用作一次性实现某个接口或继承某个类的需求。在Java编程中,匿名内部类主要用于事件处理、回调...

    Android 匿名内部类作为事件监听类

    在Android开发中,匿名内部类是一种常见的编程技巧,它允许我们快速实现事件监听功能,而无需定义单独的类。本文将深入探讨如何使用匿名内部类作为事件监听类,以及其在Android开发中的应用。 首先,我们需要理解...

    Android开发匿名内部类

    在Java编程语言中,匿名内部类是一种特殊的类,它没有名字,通常用于简化代码和实现特定功能,如事件处理或接口快速实现。在Android开发中,匿名内部类的应用尤其广泛,因为Android框架中的许多组件(如按钮、文本...

    匿名内部类代码

    匿名内部类是Java编程语言中一个独特且强大的特性,它允许我们在需要的地方直接定义一个类的实例,而无需声明一个独立的类。这种类没有名字,通常用于实现接口或者继承抽象类,尤其在事件处理、回调函数以及创建一次...

    匿名内部类核心重点知识讲解和经典例子讲解

    匿名内部类是Java编程语言中一个独特且强大的特性,它允许我们在定义类的同时不为它提供名字。这种类主要用于创建一次性使用的对象,特别是在需要实现某个接口或者继承某个类的场合,而无需创建独立的文件来定义这个...

    Handler对象中使用匿名内部类或非静态内部类正确地释放消息避免内存泄漏或增加Native内存

    然而,不当使用Handler,尤其是结合匿名内部类或非静态内部类,可能导致内存泄漏和Native内存增加,这对应用性能和稳定性造成负面影响。 首先,我们要理解内存泄漏的概念。内存泄漏是指程序中已分配的内存没有被...

    发两个匿名内部类使用的例子

    在Java编程语言中,匿名内部类是一种特殊的类,它没有名字,通常用于简化代码和实现特定功能。在标题“发两个匿名内部类使用的例子”中,我们将会探讨两种不同的场景,如何利用匿名内部类来解决问题。这篇博客文章的...

    匿名内部类实现接口回调

    这个"匿名内部类实现接口回调"的示例旨在演示如何通过匿名内部类来简化回调函数的实现。下面我们将详细探讨接口回调的概念、匿名内部类的使用以及它们在实际编程中的应用。 首先,让我们理解什么是接口回调。接口回...

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

    内部类可以是静态的,也可以是非静态的,而匿名内部类则是一种没有名字的内部类,通常用于快速实现简单的回调或者接口实现。这篇总结将深入探讨匿名内部类的相关知识点。 1. **匿名内部类的概念** 匿名内部类是...

    MapReduce,泛型,匿名内部类,Runnable和Callable

    总结来说,MapReduce是大数据处理的关键技术,泛型提供了强大的类型安全和代码复用,匿名内部类简化了多线程编程,而`Runnable`和`Callable`则是Java多线程编程的基础。了解和掌握这些概念对于理解现代分布式系统和...

    Swift匿名内部类像java那样的功能改.zip

    使用swift匿名内部类,实现jave匿名内部类功能,java中的匿名内部类,可以做到的是,就是想要重写一个类中的方法,并且执行,但是不想重新定义一个类,因为只调用一次,或者调用多次,但是每次调用的实现过程都不同,这时候就...

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

    本文将详细探讨内部类、匿名内部类以及内部接口的对比和使用。 首先,让我们了解一下内部类的基本概念。内部类定义在其他类的内部,编译后会生成两个独立的类文件。内部类能够自由地访问外部类的所有成员,包括私有...

    16.java匿名内部类.zip

    16.java匿名内部类.zip16.java匿名内部类.zip16.java匿名内部类.zip16.java匿名内部类.zip16.java匿名内部类.zip16.java匿名内部类.zip16.java匿名内部类.zip16.java匿名内部类.zip16.java匿名内部类.zip16.java匿名...

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

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

    内部类的相关知识-静态内部类,匿名内部类……

    ### 内部类的相关知识-静态内部类,匿名内部类…… #### 一、内部类概述 内部类(Inner Class)是 Java 中一种特殊类的定义方式,它允许在一个类的内部定义另一个类。这种设计模式提供了更为灵活的编程机制,可以...

    Java特别篇-匿名对象与匿名内部类

    ### Java特别篇-匿名对象与匿名内部类 #### 一、匿名对象 在Java中,对象通常通过定义一个变量来引用。例如,在`Student`类的例子中,我们首先定义了一个`Student`类,并且在`Test`类的`main`方法中通过以下方式...

Global site tag (gtag.js) - Google Analytics