Java中的匿名内部类的小结
java内部类分为: 成员内部类、静态嵌套类、方法内部类、匿名内部类 。
在java的世界里,提供了匿名内部类语法,用于帮助大家简化代码,本文简要从接口,抽象类以及常规类以代码的形式描述其常用模式。
1. 接口模式
public interface IWriter {void write();}public static void main(String[] args) {IWriter writer = new IWriter() {@Overridepublic void write() {tln("IWriter write...");}};e();}
2.抽象类
public abstract class AbstractWriter {public abstract void write();}public static void main(String[] args) {AbstractWriter abstractWriter = new AbstractWriter() {@Overridepublic void write() {tln("AbstractWriter write...");}};e();}
3.常规类
public class TextWriter implements IWriter {@Overridepublic void write() {t("text writer..");}}public static void main(String[] args) {TextWriter textWriter = new TextWriter() {@Overridepublic void write() {tln("TextWriter 2 write...");}};e();}
4.在线程中使用
public static void main(String[] args) {Thread thread = new Thread() {@Overridepublic void run() {new IWriter() {@Overridepublic void write() {tln("IWriter thread write...");}}e();}};();}
5.结语
综上可以看出,其实不管是接口中,抽象类,还是常规类派生出来的匿名内部类,其用法都是一样的'。之所以说这个是一个语法糖,其本质是编译器在编译的时候,将匿名内部类单独编译成不多个不同的class,这个和单独写实现类后再调用其实本质是一样,具体可以参见编译后生成目录.如下截图所示:
-
40个Java多线程问题总结
Java多线程是什么Java提供的并发(同时、独立)处理多个任务的机制。多个线程共存于同一JVM进程里面,所以共用相同的内存空间,较之多进程,多线程之间的通信更轻量级。依我的理解,Java多线程完全就是为了提高CPU的利用率。Java的线程有4种状态,新建(New)、运行(Runnabl...
-
Java 正则表达式
Java是一门编程语言,那么大家知道Java正则表达式是怎样的呢?下面一起来看看!Java正则表达式正则表达式定义了字符串的模式。正则表达式可以用来搜索、编辑或处理文本。正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别。正则表达式实例一个字符串其...
-
如何学好Java语言编程
决定好想学什么编程语言了吗,现在就让我们开始学习吧。所有你需要做的就是打开一本书,然后开始阅读,是这样的吗?不全是这样的。learn-first我会给出学习第一门编程语言的理想方法布局,你不仅应该学习这个布局方法,还应该享受精通它——如果不能掌握的话。学习第一门...
-
计算机二级考试Java精选训练题
下面是应届毕业生考试网小编搜索整理的计算机二级考试Java精选训练题,希望对大家有所帮助。[简答题]本题中,在下画线上填写代码,指定变量b为字节型,变量f为单精度实型,变量l为64位整型。publicclassjaval{publicstaticvoidmain(String[-]args){b=49;f=8.9f;l=0xfedl...