`
Cjch
  • 浏览: 111765 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

java 匿名内部类

阅读更多
一直不理解匿名类的原理,今天终于鼓足了勇气去问了问牛人,牛人就是牛人啊! 一讲就懂!!!而且理解的特别深入~  So 好东西一定要记下来!!!

匿名类对于我现在的理解层面在于它方便灵活了对接口以及抽象类方法的实现,如果你只需要在一个地方对某个对象实现相应的用法,那么你就可以考虑使用匿名内部类啦~。光说一定会晕的那么我们用小例子说话:
引用
下面的例子是android给按钮绑定事件的常用方法

public class Activity1 extends Activity {
	OnClickListener listener1 = null;
	Button button1;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity1);
        listener1 = new OnClickListener() {//OnClickListener是一个接口
			public void onClick(View v) {//onClick()方法是这个借口唯一的方法
				Bundle bundle = new Bundle();
				bundle.putString("store", "数据来自Activity1");
				Intent mIntent = new Intent();
				mIntent.putExtras(bundle);
				setResult(RESULT_OK, mIntent);
				finish();
			}
		};
		button1 = (Button) findViewById(R.id.button3);
		button1.setOnClickListener(listener1);
                ... ... ...(还有代码在下面~)

这个就用到了内部类,原因在于当这个按钮按下时只会触动专属于它的一个事件,不会再有其他事件了,所以使用内部类就可以把实现和执行动作一并搞定!有点像javascript的匿名函数哦~
在给几个小例子:
package com.eoeAndroid.activity;


interface OnClickListener{
	void onClick(String s);
}


public class testListener {
	
	public static void main(String... strings){
		OnClickListener listener = new OnClickListener(){

			@Override
			public void onClick(String s) {
				// TODO Auto-generated method stub
				System.out.println(s);
			}
			
		};
		listener.onClick("OK!");
	}

}


这个代码相当于将OnClickListener接口实现后引用,就好比如下代码:
package com.eoeAndroid.activity;


interface OnClickListener{
	void onClick(String s);
}

class MyListener implements OnClickListener{

	@Override
	public void onClick(String s) {
		// TODO Auto-generated method stub
		System.out.println(s);
	}
	
}
public class testListener {
	
	public static void main(String... strings){
		MyListener listener = new MyListener();
		listener.onClick("OK!");
	}

}
但如果这样的话就要手工实现好多的类,麻烦的类~,哇咔咔,这下可终于明白了!!!


分享到:
评论

相关推荐

    java 匿名内部类的使用规范

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

    Java 匿名内部类

    Java匿名内部类是Java语言中一个独特且强大的特性,它允许我们在不定义单独类的情况下创建对象。这种类没有名字,通常用作一次性实现某个接口或继承某个类的需求。在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匿名内部类创建登录界面.pdf

    Java匿名内部类在创建登录界面中的应用主要体现在事件监听机制和界面组件的设置上。本文将详细阐述如何利用这些技术构建一个登录窗口。 首先,Java Swing库提供了丰富的组件用于创建图形用户界面(GUI)。在创建...

    使用Java匿名内部类实现一个简单的线程池.txt

    ### 使用Java匿名内部类实现一个简单的线程池 #### 一、引言 在现代软件开发中,线程池是管理并发任务的重要工具之一。它能够有效地控制运行中的线程数量,合理分配系统资源,避免频繁创建销毁线程带来的性能开销...

    Java匿名内部类的写法示例

    Java匿名内部类是一种特殊的内部类,它没有名称且可以直接实现接口或继承类。这种特性使得匿名内部类在Java编程中非常灵活,常用于简洁地处理一次性或者临时性的代码实现。在本文中,我们将深入探讨Java匿名内部类的...

    JAVA_匿名内部类

    Java匿名内部类是Java语言中一个独特且强大的特性,它允许我们在不定义完整类的情况下创建对象。这种类没有名字,通常用作一次性实现某个接口或继承某个类的情况,尤其是在需要简洁代码的地方。以下是对Java匿名内部...

    Java匿名内部类原理与用法详解

    Java匿名内部类原理与用法详解 Java匿名内部类是一种特殊的内部类,它没有明确的类名,并且只能被使用一次。匿名内部类可以继承一个父类或实现一个接口,但是不能继承多个父类或实现多个接口。匿名内部类不能是抽象...

    java中的匿名内部类总结

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

    老生常谈 java匿名内部类

    Java匿名内部类是Java语言中一个独特且强大的特性,它允许我们在不定义单独类的情况下创建类的实例。这种类型的内部类通常用于简化代码,尤其是在处理回调、事件监听或需要快速实现一个接口的情况。下面我们将详细...

    java匿名内部类实例代码详解

    "java匿名内部类实例代码详解" Java匿名内部类是一种特殊的内部类,它没有类名,不能显示的调用new方法来创建对象。匿名内部类通常用来实现某些特殊的功能,例如在事件处理中,经常使用匿名内部类来实现事件处理器...

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

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

    Java 匿名内部类详解及实例代码

    Java匿名内部类是一种特殊的类,它没有名称,主要用于简化代码,特别是当类只在一个地方使用时。这种类可以在声明变量的同时被定义,并且可以继承一个类或者实现一个接口。下面我们将详细探讨Java匿名内部类的概念、...

    java匿名内部类实例简析

    Java匿名内部类是一种特殊的类,它没有被赋予一个独立的名称,而是直接在使用时定义。这种类通常用于快速实现某个功能,特别是当只需要用一次的情况。匿名内部类可以是类的子类(继承)或者实现一个接口。下面将详细...

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

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

    java匿名内部类笔试题-100ask:韦东山视频学习笔记

    java匿名内部类笔试题

    java中匿名内部类详解

    Java中的匿名内部类是一种特殊的类,它没有名称且通常用于一次性使用的情况,目的是简化代码编写。下面我们将深入探讨匿名内部类的各个方面。 1. **匿名内部类定义**: 匿名内部类,正如其名,是没有名字的类。它...

    170331-01.匿名内部类总结.java

    170331-01.匿名内部类总结.java 170331-01.匿名内部类总结.java 匿名 内部类 总结 java

    Android开发匿名内部类

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

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

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

Global site tag (gtag.js) - Google Analytics