网站首页 > java教程 正文
指针是C语言的灵魂,而函数指针又是指针中的精华,使用函数指针可以实现很多设计模式:模板模式,策略模式等。同时使用函数指针可以实现类似JAVA中的虚函数,从而实现一些抽象类和抽象接口的设计,进而实现面向对象的编程设计。
函数指针声明
根据上述例子我们不难看出,函数指针的声明就是声明一个函数,然后把函数名用圆括号扩起来,最后在函数名前面加一个*号。
函数指针初始化
函数指针本质上是一个指针,函数指针的初始化有如下3种初始化的形式(这3种形式都正确):
通常情况下第一种和第二种方式比较常见。
函数指针使用
talk is cheap, show me the code!
函数指针的使用有两种形式,这两种形式都正确:
函数指针和typedef
上述函数指针的使用没有体现出“类型”的概念,使用起来也很不方便,使用typedef可以让函数指针更加直观,show me the code :
函数指针用法
函数指针有3个主要用法:回调函数,跳转表,结构体操作。
回调函数能够实现模板设计模式(27种设计模式),使用例程如下:
跳转表能够实现策略设计模式(27种设计模式),可以代替复杂的switch语句,使用例程如下:
跳转表可以代替复杂的switch语句,比如用这通讯数据解析中,通常情况下一个通讯协议有很多种类型指令,可以将每一种通讯类型指令解析功能定义成一个函数,然后使用跳转表来实现不同类型指令执行。
结构体操作运用了面向对象的设计思想,每个结构体是一个类,类的操作通过函数指针来实现,使用例程如下:
创作不易希望朋友们点赞,转发,关注。希望获取源码的朋友们在评论区里留言。
作者:李巍
Github:liyinuoman2017
- 上一篇: Java学科:ajax的常用参数介绍
- 下一篇: JAVA中的函数接口,你都用过吗
猜你喜欢
- 2025-01-20 使用Mockito测试Callback回调
- 2025-01-20 Java设计模式-代理模式
- 2025-01-20 移动开发工具Xamarin.Android更新至6.1.2
- 2025-01-20 Java——CompletableFuture详解
- 2025-01-20 JAVA中的函数接口,你都用过吗
- 2025-01-20 Java学科:ajax的常用参数介绍
- 2025-01-20 声明式HTTP客户端框架,减轻您的开发负担
- 2025-01-20 回调、异步和观察者一次分清
- 2025-01-20 java高级用法之:JNA中的回调
你 发表评论:
欢迎- 最近发表
-
- Java对象栈上分配(java对象分配在栈上)
- Java中类和对象到底是什么?一场技术、哲学与设计的深度探索
- VSCode手动创建SpringBoot项目的方法,及详细步骤
- Redis全栈应用实战:从缓存到分布式系统全场景解析
- 用Ansible从零开始部署Spring Boot Web应用:全栈自动化部署指南
- Docker + Kubernetes部署Java应用:从容器化到集群管理的全栈体验
- 如何成为python全栈工程师(python全栈要学多久)
- 俄罗斯程序员创建了外国Java集成开发环境的国产替代品
- Java开发环境最丝滑的打开方式(java项目开发环境)
- idea最新激活jetbrains-agent.jar包,亲测有效
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)