用法:

有的类,里面只有一个方法,几行代码,只使用一次,以后再不会用到这个类,那就不值当的单独创建一个类,此时使用匿名内部类

一、传统方式

1、接口

2、接口实现类

创建一个类,这个类可能被多次使用,被new多次,这个类相当于一个模板

3、创建接口实现类实例,调用其sum()方法

 二、匿名内部类方式

1、接口

2、不需要再创建那个接口的实现类,直接把实现类的主体代码拿过来(类的花括号里面的全部)

在使用匿名内部类时,要记住以下几个原则:

·匿名内部类不能有构造方法。
·匿名内部类不能定义任何静态成员、方法和类。
·匿名内部类不能是public,protected,private,static。
·只能创建匿名内部类的一个实例。
·一个匿名内部类一定是在new的后面,用其隐含实现一个接口或实现一个类。
·因匿名内部类为局部内部类,所以局部内部类的所有限制都对其生效。

举例:用匿名内部类创建多线程

实现 Runnable接口方式:

new Thread(new Runnable() {
public void run() {
//do something
};
}) { }.start();

  

 三、Lambda表达式

Lambda为什么又称为匿名函数的更多相关文章

  1. kotlin之lambda表达式和匿名函数

    lambda表达式,称为匿名函数,是一种函数字面值,也就是没有声明的函数,但可以作为表达式传递出去. 函数类型: 对于接受另一个函数的作为自己的参数,必须针对这个参数指定一个函数的类型如 fun &l ...

  2. Python函数与lambda 表达式(匿名函数)

    Python函数 一.函数的作用 函数是组织好的,可重复使用的,用来实现单一或相关联功能的代码段 函数能提高应用的模块性和代码的重复利用率 python 内置函数:https://docs.pytho ...

  3. python基础练习题(题目 使用lambda来创建匿名函数。)

    day34 --------------------------------------------------------------- 实例049:lambda 题目 使用lambda来创建匿名函 ...

  4. C++11 Lambda表达式(匿名函数)

    http://www.cnblogs.com/RainyBear/p/5733399.html http://blog.163.com/lvan100@yeah/blog/static/6811721 ...

  5. lambda表达式、匿名函数

    lambda表达式是函数式编程中的匿名函数语法规范. In computer programming, an anonymous function (function literal, lambda ...

  6. Lambda 表达式-即匿名函数

    拉姆达值(Lambda),希腊字母表示为Λ,指与真空的空间有关的能量或暗能量.   代表转换的常量.或者转换本身.   Lambda 表达式 Lambda 表达式”是一个匿名函数,可以包含表达式和语句 ...

  7. C++11 — lambda表达式(匿名函数)

    C++11中lambda表达式的基本语法格式为: [capture](parameters) -> return_type { /* ... */ } 其中 [] 内为外部变量的传递方式: [] ...

  8. Python中的匿名函数lambda的用法

    一.lambda函数的简介  对lambda函数,它其实是一个类似于def的函数,只不过lambda是一个不需要定义函数名的匿名函数.当我们在有些时候,需要做一些简单的数学计算时,如果定义一个def函 ...

  9. 闭包(Closure)和匿名函数(Anonymous function)/lambda表达式的区别

    闭包(Closure)和匿名函数(Anonymous function)/lambda表达式的区别 函数最常见的形式是具名函数(named function): function foo(){ con ...

随机推荐

  1. Thuwc 2019 & wc 2019 划水记

    (此处不应有目录,爆零的过程应该慢慢看) Thuwc 2019 拖着箱子去广二,然后发现可以搬出去住酒店.好,然后箱子白搬了.Joker似乎说住宿体验极差,广二宿舍和林荫宿舍质量不相上下,想想wc时要 ...

  2. The History of spring

    Spring的出现  Spring最早出现对早期J2EE规范复杂性的回应 .虽然有些人一直认为Java EE和Spring处于竞争中,但Spring实际上是对Java EE的补充.Spring编程模型 ...

  3. 【使用指南】ComponentOne Enterprise .NET开发控件集

    为方便广大 .NET开发人员更好的使用 ComponentOne Enterprise .NET开发控件集,葡萄城专门推出了 ComponentOne Enterprise 使用指南,该指南详细地介绍 ...

  4. 2>&1的意思

    2>&1的意思就是将标准错误也输出到标准输出当中.

  5. oralce问题

    死锁,如果较多使用存储过程杀死 create or replace procedure killer is    v_obj varchar2(200);    v_sql varchar2(500) ...

  6. oracle 游标分析与理解(基础)

    --------------坚持写一点 慢慢成长 希望对大家有所帮助(小白的理解)  也是自己学习后的理解(只是一小部分,需要更深沉的还需日后成长) 接下来就是我们的重点 --游标 提供了一种对从表中 ...

  7. 第 9 章 数据管理 - 074 - 如何安装和配置 Rex-Ray?

    Rex-Ray 安装和配置方法 Rex-Ray 是一个优秀的 Docker volume driver 安装和配置方法 Rex-Ray 以 standalone 进程的方式运行在 Docker 主机上 ...

  8. Lua 用指定字符或字符串分割输入字符串,返回包含分割结果的数组

    // 用指定字符或字符串分割输入字符串,返回包含分割结果的数组 // @function [parent=#string] split // @param string input 输入字符串 // ...

  9. java,sort的数组降序

    1.Array.sort(数组,起始位置,结束位置).这个是升序排序. 2.关于数组的降序实现如下: 利用Collections.reverseOrder()方法: import java.util. ...

  10. 自动生成CHANGELOG.md

    $ npm install -g conventional-changelog-cli $ cd my-project $ conventional-changelog -p angular -i C ...