课时129:匿名内部类

简介: 1.匿名内部类的定义2.匿名内部类的形式3.匿名类的基本处理形式

课时129:匿名内部类

摘要:

1. 匿名内部类的定义

2. 匿名内部类的形式

3. 匿名类的基本处理形式

 

01.匿名内部类

 

1.1匿名内部类的定义


匿名内部类是一种简化的内部类的处理形式,其主要是在抽象类和接口的子类上使用的。

 

1.2范例:观察一个基本的程序结构 


interface IMessage {
public void send (String str) ;
}
class MessageImpl implements IMessage { 
public void send(string str) {
System.out.println (str) ;
  }
}
public class JavaDemo {
public static void main(String args[]) {
IMessage msg = new MessageImp1 () ;
msg.send("www .mldn .cn" ) ;
}
}

image.png

 

02.匿名内部类的形式

 

2.1定义


如果说现在 IMessage 接口中的 MessageImpl 子类只使用唯一的一次,那么是否还有必要将其定义为单独的类。在这个要求下就发现这个时候定义的子类是有些多余了,所以就可以利用匿名内部类的形式来解决此问题。

 

2.2范例:使用匿名内部类


interface IMessage { 
public void send(string str) ;
}
public class JavaDemo {
public static void main(string args []) { 
IMessage msg = new IMessage() { //匿名内部类
public void send(String str) {
System.out.println(str);
}
       }  ;
msg.send("www .mldn .cn" ) ;
   }
}

image.png


03.匿名类的基本处理形式

 

3.1匿名内部类的实现


为了更加方便的体现出匿名,内部类的使用可以利用静态方法做一个内部的匿名内部类实现。

 

3.2范例:在接口中直接定义匿名内部类


interface IMessage {
public void send ( string str) ;
public static IMessage getInstance()  {
return new IMessage()  {
public void send (string str)  {
System.out.println(str) ;
            }
        }  ;
}
}
public class JavaDemo  {
public static void main(string args [] )  {
IMessage.qetInstance().send("www.mldn.cn" ) ;
}
}

image.png

很多时候可以这样去使用匿名内部类,与内部类相比匿名内部类只是一个没有名字的只能使用一次的,并且结构固定的一个子类操作。这是匿名类的基本处理方式。

相关文章
|
7月前
|
Java C++
课时124:assert断言
assert断言的含义以及使用 1.断言的引入 2.生活实例理解断言 3.Java 中断言的使用
162 2
|
关系型数据库 数据库 PostgreSQL
PG源码分析系列:内存上下文
title: Pgsql源码分析——内存上下文 date: 2018-05-01 22:00:00 categories: - Postgresql - PgSource Postgresql内存上下文源码分析 1 数据库内存上下文   postgresql在7.1版本引入了内存上下文机制来解决日益严重的内存泄漏的问题,在引入了这种“
1948 1
|
7月前
|
Oracle Java 关系型数据库
课时48:JavaDoc文档简述
主要讲解了Java DOC文档的使用方法和技巧。首先,介绍了Java DOC的简介,强调了在开发过程中需要大量使用API文档。其次,详细解析了Java DOC的组成结构,包括位的完整定义、类的相关说明以及方法的详细解释。 1.Java DOC简介 2.Java DOC文档的组成
163 20
|
7月前
|
设计模式 Windows
课时109:单例设计
课时109介绍了单例设计模式,主要内容包括:1. 单例设计的具体内容;2. 操作步骤,如构造方法私有化、提供静态方法获取实例;3. 设计结构,确保只有一个实例化对象;4. 特点,如构造方法私有化和通过静态方法获取实例。单例模式分为懒汉式(首次使用时实例化)和饿汉式(类加载时实例化)。该模式常用于系统中需要唯一实例的场景,如Windows回收站。
|
7月前
|
存储 监控 安全
工业物联网关应用:PLC数据通过智能网关上传阿里云实战
本文介绍如何使用智能网关将工厂PLC数据传输至阿里云平台,适合中小企业远程监控设备状态。硬件准备包括三菱FX3U PLC、4G智能网关和24V电源。接线步骤涵盖PLC编程口与网关连接、运行状态检测及天线电源接入。配置过程涉及通讯参数、阿里云对接和数据点映射。PLC程序关键点包括数据上传触发和温度值处理。阿里云平台操作包含实时数据查看、数据可视化和规则引擎设置。最后提供常见故障排查表和安全建议,确保系统稳定运行。
636 1
|
Java Maven 容器
java依赖冲突解决问题之Maven在编译打包过程中对依赖的jar包如何解决
java依赖冲突解决问题之Maven在编译打包过程中对依赖的jar包如何解决
|
7月前
|
IDE Java 关系型数据库
课时145:Eclipse简介
Eclipse 是现在一个比较大型的开源组织,其主要是以推广 Java 标准以及 IDE 为主。 Eclipse 开发工具
173 0
|
7月前
课时142:链表(清空链表)
在某些场景下,我们需要一次性清空链表中的所有数据。这个时候就可以通过根元素处理进行控制。只要 Root 设置为空,则后续的节点都不存在。
123 0
|
存储 负载均衡 监控
dubbo学习一:zookeeper与dubbo的关系,下载安装启动zookeeper(解决启动中报错)
这篇文章是关于Apache Dubbo框架与Zookeeper的关系,以及如何下载、安装和启动Zookeeper的教程,包括解决启动过程中可能遇到的报错问题。
453 3
dubbo学习一:zookeeper与dubbo的关系,下载安装启动zookeeper(解决启动中报错)