当前位置: 首页 > news >正文

接口及事件监听

接口

什么是接口?

接口是一种引用数据类型,它是对行为的抽象。你可以把它想象成一份能力清单或角色规范。

  • 定义方式:使用interface关键字。
  • 核心思想:它只声明方法的签名(方法名、参数、返回类型),而不提供方法体。实现该接口的类必须提供这些方法的具体实现。
  • 实例化:接口本身不能被实例化,即不能使用new关键字直接创建接口对象(只指定规则,干什么你直接定),但可以被实现类实现。

1.定义接口

package com.day0408.lis; public interface TypeC { //宽度 int width = 200; //传输数据 public void tranData(); }

2. 实现接口

// Mouse 类实现 Animal 接口 public class Mouse implements Animal { @Override public void tranData() { System.out.println("鼠标在传输数据"); } }

接口的核心特性

  • 作用:接口定义了一组规则,任何实现它的类都必须遵守这些规则,这有助于代码的标准化。

  • 多实现:一个类可以实现多个接口,这弥补了 Java 类单继承的局限性,让一个类可以拥有多种“能力”。 弥补单继承的局限,实现多重能力接口允许一个类实现多个接口,从而获得多种“能力”。示例:一只Duck(鸭子),它既是一种Animal(动物),也会Fly(飞),还会Swim(游泳)。

  • 多态性:接口是实现多态的重要方式。可以使用接口类型的变量来引用任何实现了该接口的类的对象。

    接口是实现多态(Polymorphism)的关键机制之一。它允许你使用统一的接口类型来引用不同的实现类对象,从而用一套代码处理多种不同的行为。多态 (Polymorphism):在运行时,程序会根据对象的实际类型,自动调用相应的方法实现。这使得代码更具弹性和扩展性。示例:你可以编写一个方法,接收List接口作为参数。这个方法可以处理ArrayListLinkedList或任何未来出现的List实现,而无需为每种类型重写方法。

  • 特性抽象类 (Abstract Class)接口 (Interface)
    继承关系单继承(一个类只能继承一个)多实现(一个类可实现多个)
    成员变量可以有各种类型的变量(实例变量、常量等)只能是public static final常量
    构造方法有构造方法,供子类调用没有构造方法
    方法可以有抽象方法和具体实现的方法Java 7及以前只有抽象方法;Java 8+ 增加了默认、静态方法
    设计目的对一类事物的共性进行抽象(“是什么”)对一类行为或能力进行规范(“能做什么”)

事件监听

给事件源组件添加事件监听器,当事件源组件上发生相应类型的事件时,则自动的调用事件监听器中事件处理方法。

鼠标事件:用鼠标操作组件(关注:操作的位置、类型)

键盘事件:在组件上,按下键盘

动作事件:点击按钮、在输入框回车(关注:操作的是哪一个)

事件监听器

java中为每一种类型的事件,都定义了对应类型的事件监听器

鼠标事件监听器:MouseLsitener

键盘事件监听器:KeyListener

动作事件监听器:ActionListener

核心三要素

一个完整的事件监听流程离不开以下三个角色:

  1. 事件源 (Event Source)
    产生事件的对象。通常是用户直接交互的 GUI 组件,例如按钮 (JButton)、文本框 (JTextField) 或窗口 (JFrame)。

  2. 事件对象 (Event Object)
    封装了事件所有信息的对象。当事件发生时,事件源会创建一个事件对象,其中包含了事件的类型、发生时间、来源组件等详细信息,并将其传递给监听器。例如ActionEventMouseEventKeyEvent

  3. 事件监听器 (Event Listener)
    负责监听并处理事件的对象。它是一个实现了特定监听器接口的类,定义了事件发生后应该执行的具体逻辑。

常见事件类型

Java AWT/Swing 库为各种用户交互预定义了丰富的监听器接口:

表格

事件类型监听器接口典型应用场景
ActionEventActionListener按钮点击、菜单项选择
MouseEventMouseListener鼠标点击、按下、释放、进入组件区域
KeyEventKeyListener键盘按键按下、释放
WindowEventWindowListener窗口打开、关闭、最小化

事件监听的实现:

第一步:确定事件源组件

第二步:确定事件类型

动作事件

第三步:创建一个类,实现对应的监听器接口

第四步:创建监听器类的对象,给事件源组件添加监听器

http://www.jsqmd.com/news/768393/

相关文章:

  • TwinCAT C++项目避坑指南:封装一个稳定可靠的CoE(SDO)读写工具类
  • 3分钟快速解密:如何轻松转换网易云音乐NCM格式文件
  • clawface:动态网页爬虫框架解析与实战指南
  • GenAI-MCP:大模型工具调用的标准化协议与实践指南
  • 基于深度矩阵分解的电商用户长短期兴趣建模,深度矩阵分解:破解电商用户长短期兴趣建模的终极指南
  • 基于MCP协议自建Codex代码生成服务器:私有化AI编程助手部署指南
  • MySQL如何解决版本迁移中的触发器冲突_先备份后手动重建
  • Windows Defender移除终极指南:windows-defender-remover工具深度解析与实战应用
  • 学术研究效率提升:从文献管理到可复现编程的全流程技能指南
  • Browser Ops:为OpenClaw构建智能、可恢复的浏览器工作流内核
  • Spring Framework 入门第一天:掌握核心容器 IOC 与 DI
  • 从汽车设计到游戏建模:B样条曲线是如何成为工业软件‘隐形冠军’的?
  • DistroAV终极指南:如何在MacOS上快速解决OBS-NDI插件问题
  • 新手别怕!用IDA Pro分析CTF PWN栈溢出题,保姆级实战复盘(附Python脚本)
  • 别只做线性回归了!用SPSS曲线估计与Logistic回归,挖掘数据中的非线性关系与分类规律
  • SQL Developer 连接类型 (Connection Type) :SID 和 Service Name的区别
  • 大语言模型幻觉问题解析与抗幻觉技术实践
  • Windows WSL环境搭建OpenClaw机器人开发环境全攻略
  • 终极英雄联盟回放分析工具:5步掌握ROFL播放器的完整使用指南
  • 别再让GPU内存浪费了!用vLLM的PagedAttention技术,让你的LLaMA推理吞吐量提升24倍
  • 自动化发布流程:使用skill-release-cop实现CI/CD版本管理
  • Python股票诊断工具:基于开源库构建自动化基本面分析框架
  • 梦笔记20260507
  • Vue3项目实战:Element Plus表格拖拽排序的‘坑’我都帮你踩完了(SortableJS集成指南)
  • 智能体输入编译器:将自然语言转化为结构化指令的工程实践
  • 手把手教你用ArduPilot飞控,让DIY的F450四轴在无GPS下也能稳如老狗(Kakute F7 AIO实战)
  • 5分钟掌握Windows风扇控制:Fan Control终极免费散热优化指南
  • 基于Matplotlib的学术论文图表标准化绘制与自动化工作流实践
  • LLM智能体调试框架AgentDebug核心技术解析
  • VoiceClaw开源项目:为本地AI模型构建安全语音交互接口