Java高级语法笔记-匿名类(Anonymous Class)
匿名类(Anonymous Class)
匿名内部类,简称匿名类:是内部类的一种化简写法。
基本写法如下:
BaseType obj=new BaseType(){
//类的定义
}
Java项目中匿名类的写法十分常见。
匿名内部类也是内部类,所以语法上和内部类一样使用。
this. 访问本类对象的成员
OUTER.this 访问外部类OUTER对象的成员
AbstractClass.java
package my;public abstract class AbstractClass
{public abstract void Print();
}
HelloWorld.java
package my;public class HelloWorld
{public void CalledAbstractClassPrint() {AbstractClass Anonymous_Abstract=new AbstractClass() {@Overridepublic void Print(){System.out.println("Anonymous_Abstract Called");}};Anonymous_Abstract.Print();}public void CalledNormalClassPrint() {NormalClass Anonymous_Normal=new NormalClass() {public void Print() {System.out.println("Anonymous_Normal called");super.Print();}};Anonymous_Normal.Print();}public void CalledInterfaceDemoPrint() {InterfaceDemo Anonymous_Interface=new InterfaceDemo() {@Overridepublic void Print(){System.out.println("Anonymous_Interface called");}};Anonymous_Interface.Print();}public static void main(String[] args){ HelloWorld t=new HelloWorld();t.CalledAbstractClassPrint();t.CalledNormalClassPrint();t.CalledInterfaceDemoPrint();}
}
InterfaceDemo.java
package my;public interface InterfaceDemo
{public void Print();
}
NormalClass.java
package my;public class NormalClass
{private int data=10;public void Print() {System.out.println("The value of NormalClass is "+data);}}
运行结果:
Java高级语法笔记-匿名类(Anonymous Class)相关推荐
- Java高级语法笔记-模板类
模板类 模板类用与表示通用的数据结构和算法. 例如,定义一个类List,表示通用链表(适用于任意对象的类型) 定义模板类: class List<T>{ } 使用模板类:创建List对象时 ...
- Java高级语法笔记-自定义异常类
自定义异常类 继承Exception,自定义异常类: 异常类要能够描述错误信息 比如,非法字符异常 IllegalCharException应该把非法字符的位置带上. throws多种异常 throw ...
- Java高级语法笔记-语法支持的异常
语法支持的异常 Java对异常支持得很彻底,举例来说: (java.lang.*下面,语法自带的异常类) 数组越界 ArrayIndexOutOfBoundsException 除0异常 Arithm ...
- Java高级语法笔记-反射机制(Reflection) (1)
反射机制:在C/C++里面是没有的. 反射机制是Java的一个非常重要的机制.一些著名的应用框架都使用了此机制. java.lang.Class它是Java语法的一个基础类,用于描述一个class对象 ...
- Java高级语法笔记-文件读写(2)
文件读写(2) int与byte[]之间的互相转化 使用java.nio.ByteBuffer类可以完成int到 byte[]的转换 byte[] buf = new byte[4]; int a = ...
- Java高级语法笔记-枚举类型
用enum定义枚举类型,即定义一些常量. public enum Weekday{ SUNDAY,MONDAY,TUESDAY,WEDNESDAY, THURSDAY,FRIDAY,SATURDAY ...
- Java高级语法笔记-接口(interface)
接口interface 接口和抽象类写法是一样的(只定义一个声明) interface的使用:定义一个类,implements这个接口.(对比abstract class,extends) inter ...
- Java高级语法笔记-普通异常处理
地位: 1. Java彻底地.完全地支持了异常机制. 2. 无处不在.必须掌握. 正常情况:传入一个数组,长度为N,则getMax能够正常运作得到最大值. 异常情况:传入一个数组,长度为0...如何处 ...
- Java高级语法笔记-库的使用(jar)
库的使用(jar) 开发一个有用的类,想给别人使用,但是不想把源代码给别人. Java里的库文件的形式 *.jar 可以将编译出的class文件打包成 *.jar格式,称为jar包.将jar包发给别人 ...
最新文章
- 如何在数据库中高效实现订座功能?
- wpf c 登录注册 mysql代码代码_Wpf+数据库代码封装+策略模式封装
- python里遍历筛选xml文件_python xml.etree.ElementTree遍历xml所有节点实例详解
- java一维数组的特点,数据结构:java数组特点以及声明数组类
- Notepad++连接VMWare中Linux只能看到/root目录
- 冯·诺依曼计算机特点
- python selenium 怎么查找modal悬浮窗的内容_python教程:五分钟从pubmed down几万篇文献...
- Elasticsearch学习系列-ElasticSearch 核心概念
- 虚拟化桌面初始化配置处理
- lisp读点坐标绘多义线_AutoCAD中多义线的坐标标注
- 【树状数组 思维题】luoguP3616 富金森林公园
- zz Makefile学习教程: 跟我一起写 Makefile
- linux qt安装包下载链接
- Games 图形学 L2线性代数
- 【VS2015】 C++实现硬件ID的查询
- Mysql如何清空数据库中所有的表数据
- oracle sqlldr decode,sqlldr时遇到的一个问题
- 模拟大规模电动车充电行为(Matlab实现)
- 麻省理工大学公开课学习笔记【1、算法分析】
- c语言实现7段数码管显示,FPGA入门--七段数码管显示