匿名内部类new Runnable()
匿名内部类(Anonymous Inner Class),在创建实例的同时给出类的定义,所有这些在一个表达式中完成。
|
1
2
3
4
|
Runnable rn = new Runnable() { public void run() { }}; |
相当于:
|
1
2
3
4
5
|
class Anomymous implements Runnable { public void run() { }}Runnable rn = new Anomymous(); |
可以看到前者更简洁。(注意前者最后的分号不能省略,编译器把整个看作一条语句)
不过,匿名内部类仅限于只实例化一次的内部类,如果内部类需要多次实例化,通常用后者。
另外,匿名内部类要么继承一个父类,要么实现一个接口,不能两者兼有,实现接口时也不能实现多个接口。关于该问题可以参考这贴:
匿名内部类(Anonymous Inner Class),在创建实例的同时给出类的定义,所有这些在一个表达式中完成。
|
1
2
3
4
|
Runnable rn = new Runnable() { public void run() { }}; |
相当于:
|
1
2
3
4
5
|
class Anomymous implements Runnable { public void run() { }}Runnable rn = new Anomymous(); |
可以看到前者更简洁。(注意前者最后的分号不能省略,编译器把整个看作一条语句)
不过,匿名内部类仅限于只实例化一次的内部类,如果内部类需要多次实例化,通常用后者。
另外,匿名内部类要么继承一个父类,要么实现一个接口,不能两者兼有,实现接口时也不能实现多个接口。关于该问题可以参考这贴:
匿名内部类new Runnable()的更多相关文章
- 几种创建线程方式Thread类和Runnable接口
对于很多想学习java的人来说,经常听别人说线程难,其实真正理解了线程后,一点都不会觉得线程难,这里我为大家梳理下线程的创建方式吧. 一.线程的创建方式有三种 1.继承Thread类 2.实现Runn ...
- Java—Lambda基础
虽然JVM有着Scala .Groovy .Clojure 等依赖于JVM的函数语式语言,但直到Java8才算是java正式支持函数式编程: Java8中加入了Lambda的支持标志着Java正式加入 ...
- 多线程---优先级&yield方法
优先级只有10级,1-10.最高10(java中用Thread.MAX_PRIORITY),最低1,中间级5. 设置优先级的方法是 线程对象.setPriority(5): yield : 暂停(不是 ...
- java基础(十三)-----详解内部类——Java高级开发必须懂的
可以将一个类的定义放在另一个类的定义内部,这就是内部类. 为什么要使用内部类 为什么要使用内部类?在<Think in java>中有这样一句话:使用内部类最吸引人的原因是:每个内部类都能 ...
- java的四种内部类详解
引言 内部类,嵌套在另一个类的里面,所以也称为:嵌套类; 内部类分为以下四种: 静态内部类 成员内部类 局部内部类 匿名内部类 一.静态内部类 静态内部类: 一般也称"静态嵌套类" ...
- 线程的加入.join()
格式:以加入A线程为例 线程对象B.join() 无参数,则A线程一直暂停,直到B线程运行结束. 线程对象B.join(时间t) 有参数,则A线程每隔t时间暂停一次,直到B线程运行结束. 关于 ...
- java 之多线程
多线程基本概念_程序_线程 1.1程序.进程.线程 程序:Program是一个指令的集合 进程:Process(正在执行中的程序)是一个静态的概念.进程是程序的一次静态执行过程,占用特定的地址空间.每 ...
- 9102年了,你还在用for循环操作集合?
本文首发于cdream的个人博客,点击获得更好的阅读体验! 欢迎转载,转载请注明出处. 前段时间公司书架多了一本<Java8 实战>,毕竟久闻lambda的大名,于是借来一阅.这一看,简直 ...
- 类与接口(二)java的四种内部类详解
引言 内部类,嵌套在另一个类的里面,所以也称为 嵌套类; 内部类分为以下四种: 静态内部类 成员内部类 局部内部类 匿名内部类 一.静态内部类 静态内部类: 一般也称"静态嵌套类" ...
随机推荐
- poj 1265 Area( pick 定理 )
题目:http://poj.org/problem?id=1265 题意:已知机器人行走步数及每一步的坐标 变化量 ,求机器人所走路径围成的多边形的面积.多边形边上和内部的点的数量. 思路:1.以 ...
- poj 2418 Hardwood Species (map)
题目:http://poj.org/problem?id=2418 在poj 上交题总是有各种错误,再次感叹各个编译器. c++ AC代码,G++为超时,上代码: #include<cstdio ...
- 结构体buf_block_t
/** Buffer block for which an uncompressed page exists */ typedef struct buf_block_struct buf_block_ ...
- 【 D3.js 高级系列 — 5.1 】 颜色插值和线性渐变
颜色插值指的是给出两个 RGB 颜色值,两个颜色之间的值通过插值函数计算得到.线性渐变是添加到 SVG 图形上的过滤器,只需给出两端的颜色值即可. 1. 颜色插值 在[高级 - 第 5.0 章]里已经 ...
- po 时不生效时, 不要用点方法
Dot notation for message sending is not supported in lldb. Use bracket notation and cast the result ...
- 【转】android 最新 NDK r8 在window下开发环境搭建 安装配置与使用 详细图文讲解,完整实际配置过程记录(原创)
原文网址:http://www.cnblogs.com/zdz8207/archive/2012/11/27/android-ndk-install.html android 最新 NDK r8 在w ...
- HDU 4389 X mod f(x)
题意:求[A,B]内有多少个数,满足x % f(x) == 0. 解法:数位DP.转化为ans = solve(b) - solve(a - 1).设dp[i][sum][mod][r]表示长度为i, ...
- Memcache缓存与Mongodb数据库的优势和应用
先说说自己对 Memcache和Mongodb的一些看法,主要是抛砖引玉了,希望看到大家的意见和补充. Memcache Memcache的优势我觉得总结下来主要体现在: 1) 分布式.可以由10台拥 ...
- C++空类以及没有成员变量的类的大小
关于C++中空类的大小为1,我们大家都有所了解,但是除了空类之外的其他一些没有成员变量的类的大小,还是有很多不明之处的. 我们来看如下一个例子: #include<iostream> us ...
- 相当管用了 mstha插件
http://www.i-magical.com/2010/04/feizhuliu-kill-virus-mshta-exe/ 非主流杀毒 – mshta.exe Vincent | Apr 23, ...