接口上加@feignclient还有实现类_类接口的实现及应用
大家好,这讲开始我将给大家讲解这套《VBA中类的解读及应用》的最后一个专题:类接口的实现及应用。在之前的文章中已经给大家了解了一些接口的相关知识,在这个专题中将会给大家详细地讲解这块的内容,作为本套教程的收篇部分。
一 什么是接口(Interfaces),接口的意义,接口的命名习惯
我们知道,VBA最初是一种简单的脚本语言(scripting language),它允许您创建简单的宏(macros)来自动化运行频繁执行的工作,同时可以编写可以调用的自定义函数(functions)。在1997年的版本中,Microsoft升级了VBA,包括一些面向对象的编程特性,并添加了VBA编辑器(the VBA Editor)。从这个时候开始,VBA在众多的场合开始发挥着独步的作用,有寄生语言的方便,也有进一步开发的难题。可以肯定的是,VBA并不是一个完全的面向对象编程语言(object-oriented programming lanauge),因为它缺乏重要的OOP特性,比如继承性(inheritence)和函数重载(function overloading)。然而,它确实包含了两个非常重要的OOP特性:类(Classes)和接口(Interfaces)。
对于类(Class)的概念,我们已经有过详细的讲解,那么,什么是接口(Interface)呢?接口中定义类的所有属性(properties)、函数(functions)和子过程(subs),但不包含可执行代码。你可以在类中定义包括所有的过程声明以及它们的输入参数(input parameters)(如果有的话)和函数的返回类型(the return type for functions),但是这些过程中不存在任何代码。也就是说,接口定义了类向外部世界公开什么,但不包含或定义如何执行这些过程。
为了使用接口,需要你非常熟悉VBA中的类和对象(object),以及如何使用它们。正如可以将类看作对象的模板(template)一样,可以将接口(Interface)看作类(Class)的模板。一个接口在一个类模块(class module)中创建,一个类模块是一个接口。您不需要对类模块做任何特殊的操作来表明它将被用作为接口。
按照习惯惯例,用于定义intefaces的类模块的名称以大写的“I”开头。但这种写法并不是必需的,只是作为一个代码人员的习惯。在我的这个专题中,将在引用用作接口的类模块时使用术语“接口模块”(interface module),在引用常规类模块时使用术语“类模块”(class module)。这只是为了说明。实际上,用作接口的类与常规类之间没有区别,只是接口类中定义的过程不包含任何可执行代码。接口模块只包含过程声明(the procedure declarations),没有代码。
我们来看看本专题将要讲解的一个实例的类接口截图:
这讲的文字较少,但给大家讲解的知识非常多,希望读者能认真的理解,可以说类的知识本身就是VBA的一个难点,而接口的理解也是类知识中的难点。在上文的介绍中,我尽可能的用准确的语言描述这些概念,但怕引起异议,我还是附上了英语的概念,供大家研读。
今日内容回向:
1 什么是接口?如何理解接口是产生类的模板?
2 接口模块和类模块有什么不同?
3 接口类的命名有哪些可以借鉴的习惯?
在取代OFFICE新的办公软件没有到来之前,谁能在数据处理方面做到极致,谁就是王者。其中登峰至极的技能非VBA莫属!众鸟高飞尽,孤云独去闲。相看两不厌,只有敬亭山。
学习VBA是个过程,这个过程是自己忍受孤独的过程。
“水善利万物而不争”,你看她绵绵密密,微处则无声,巨则汹涌。学习亦如此,把握现在,为达千里,需要默默耕耘,知道什么是自己所需要的,不要蜷缩在一小块自认为天堂的世界里,待到暮年时去自欺欺人。要在当下,用一颗充满生机的心灵,努力提高自己,这才是进取。越是有意义的事情,困难会越多。愿力决定始终,智慧决定成败。不管遇到什么,都是风景。看淡纷争,看轻得失。一杯茶,满也好,少也好,不要去计较;浓也好,淡也好,其中都有值得品的味道。去感悟真实的时间,静下心,多学习,积累福报。而不是天天混日子,也不是天天熬日子。一切众生的心都在变化,像时间一样,永远不会停留,把握现在就是福报。
VBA是利用Office实现自己小型办公自动化的有效手段,我记得20年前自己初学VBA时,那时的资料甚少,只能看源码自己琢磨,真的很难。20年过去了,为了不让学习VBA的朋友重复我之前的经历,我根据自己多年VBA实际利用经验,推出了五部VBA专门教程,回向给需要学习的朋友:
第一套:VBA代码解决方案 是VBA中各个知识点的讲解,覆盖绝大多数的VBA知识点,初学必备;
第二套:VBA数据库解决方案 数据库是数据处理的专业利器,教程中详细介绍了利用ADO连接ACCDB和EXCEL的方法和实例操作。
第三套:VBA数组与字典解决方案 数组和字典是VBA的精华,字典是VBA代码水平提高的有效手段,值得深入的学习。
第四套:VBA代码解决方案之视频 是专门面向初学者的视频讲解,可以快速入门,更快的掌握这门技能。
第五套:VBA中类的解读和利用 这是一部高级教程,讲解类的虚无与肉身的度化,可以对促进自己理论的提高。
学习的过程也是修心的过程,修一个平静的心。在代码的世界中,心平静了,心情好了,身体自然而然就好。心静则正,内心里没有那么多邪知邪见,也就没有那么多妄想。在平静中积累自己的财富。我的上述教程是我多的经验的传递,大家可以根据1,3,2,5或者是4,3,2,5的顺序逐渐深入的逐渐学习。可以WeChat: NZ9668
最后将一阙词送给致力于VBA学习的朋友:
浮云掠过,暗语无声,
唯有清风,惊了梦中啼莺。
望星,疏移北斗,
奈将往事雁同行。
阡陌人,昏灯明暗,忍顾长亭。
多少VBA人,
暗夜中,悄声寻梦,盼却天明。
怎无凭!
分享成果,随喜正能量
接口上加@feignclient还有实现类_类接口的实现及应用相关推荐
- java面向对象 接口和实现类_类实现java面向对象上:接口
最近应用开发的过程中出现了一个小问题,顺便记录一下原因和方法--类实现 10.接口: 接口的设计: 1.应用接口处理多继承: 2.应用接口为外部类添加功能: ...
- vba 定义类_类模块的定义及设计
你已选中了添加链接的内容蓝字关注,加微信NZ9668获资料信息 VBA解决方案 系列丛书作者 头条百家平台 VBA资深创作者 _______________________________ ( ...
- python设计一个长方形类_类设计模式python学习~元类
废话就不多说了,开始... 元类是类的模版,在类的层次上标准类的行为. 面下用使元类现实单例设计模式(设计模式九 采取的是另一种方法): from warnings import * 每日一道理 坚持 ...
- ER图连接线上加个圆圈什么意思_如何拿链家网的租房数据做些有意思的事情?...
周末周六两天,做了链家网的爬虫,可能有很多朋友做过,当然很多人只是练爬虫,但没有对爬取数据进行一些可视化去发现一些比较有意思的东西,今天想要通过抓取的数据进行一些比较有趣的统计分析. 如果你想要这份数 ...
- 图片上加动图怎么弄_用PS把千张图片拼成心爱的人的样子,只需三步!
把千张图片拼成一张图像也就是千图成像,用PS还是很简单的,虽然说我还在存够心爱的人的千张图片的路上,但是这个技巧可以先学上. 教程开始 步骤一:准备好图片,如果图片尺寸不统一,可以用PS的这个自动批量 ...
- ER图连接线上加个圆圈什么意思_你们要的PS抠图插件来了 抠图神器:Topaz教程 Winamp;Mac双版本下载...
现在的PS,各种外挂插件的功能越来越强大,可以做好多事情,比如之前说过的DR4,就非常全能.但是它没有抠图功能,所以今天介绍给小伙伴们一个新的插件,抠图神器:Topaz.下载方法放在文章末尾. 这款插 ...
- ER图连接线上加个圆圈什么意思_没有声母的音节叫什么?零声母音节
学拼音时,我们会遇到一些音节没有声母,那我们如何来学习呢? 首先的告诉大家,没有声母的音节叫什么?零声母音节. 什么是零声母呢? 普通话的零声母音节是,没有声母的音节. 首先写出下面写出所有的零声母音 ...
- ER图连接线上加个圆圈什么意思_江南百景图:应天府、苏州府之后还有哪些?...
入坑江南百景图两天,还没解锁苏州府. 看着别人秀苏州府的繁华,我只能看着自己的两条船,望大地图而兴叹-- 然而突然,我怎么好像在地图里发现了上海的崇明岛???(右侧中间那个长长的岛) 穿过应天府的那条 ...
- 6.java中什么是类_类、对象(java基础知识六)
1.Java约定俗成 java约定俗成1,类名接口名 一个单词首字母大写,多个单词每个单词首字母都大写2,方法名和变量名 一个单词全部小写,多个单词从第二个单词首字母大写 建议:如果能用英语尽量用英语 ...
最新文章
- Windows 7中200M神秘隐藏分区
- 拉取远程分支到本地分支_保险公司在本地没有分支机构可以投保吗?异地投保会影响理赔吗?...
- 10、并发容器,ConcurrentHashMap
- ThreadX应用开发笔记之二:移植ThreadX到STM32H7平台
- 如何使用Bioconductor进行单细胞分析?
- mysql 隔行记录_php mysql数据输出实现隔行变色的简单示例
- msys2软件包管理工具pacman常用命令
- 从人与世界的关系上来看,人其实分为两部分
- Unique Binary Search Trees,Unique Binary Search Trees2 生成二叉排序树
- Java 8 中的 CompletableFuture 太好用了!20 个示例全分享…
- Python使用requests发送post请求
- 基于ASP的在线邮件收发系统研究设计
- 面经个人向(算法岗)
- 微信小程序分享二维码扫码进入如何获取参数,小程序码进入参数为啥拿不到;
- 【Mysql密码管理】-【管理员密码已知、未知(忘记密码)、破解】
- 好书推荐《月亮与六便士》
- 《machine learning in action》机器学习 算法学习笔记 决策树模型
- Java生成海报带二维码,原图或base64返回
- 【答粉丝问】面试时,面试官说“谈谈你的缺点”时,该怎么回答?
- ip_forward参数对Linux内核转发影响分析
热门文章
- 用Java通讯录字母排序,按所有Catorgories显示联系人数据库标记,然后按字母顺序排序| PHP SQL...
- 快速排序 python 4种写法_[算法] 关于快速排序的四种写法
- bzoj1066 [SCOI2007]蜥蜴 网络流复制点模型
- 2017.9.5 组合数学 思考记录
- 【英语学习】【Daily English】U06 Shopping L01 We are out of pasta.
- IDEA 点击进入方法内部_一份最详细的 IDEA调试教程,让bug无处藏身!
- python初学者用什么软件_初学者编写python用什么软件
- php自动滚动到页尾,让DOM元素自动滚到视野内ScrollIntoView
- c++怎么将两个类的方法集合成一个类的方法_一文帮你梳理 Java 集合
- Unreal角色技术指南