大家好,这讲开始我将给大家讲解这套《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还有实现类_类接口的实现及应用相关推荐

  1. java面向对象 接口和实现类_类实现java面向对象上:接口

    最近应用开发的过程中出现了一个小问题,顺便记录一下原因和方法--类实现 10.接口: 接口的设计:        1.应用接口处理多继承:        2.应用接口为外部类添加功能:        ...

  2. vba 定义类_类模块的定义及设计

    你已选中了添加链接的内容蓝字关注,加微信NZ9668获资料信息  VBA解决方案   系列丛书作者  头条百家平台 VBA资深创作者 _______________________________ ( ...

  3. python设计一个长方形类_类设计模式python学习~元类

    废话就不多说了,开始... 元类是类的模版,在类的层次上标准类的行为. 面下用使元类现实单例设计模式(设计模式九 采取的是另一种方法): from warnings import * 每日一道理 坚持 ...

  4. ER图连接线上加个圆圈什么意思_如何拿链家网的租房数据做些有意思的事情?...

    周末周六两天,做了链家网的爬虫,可能有很多朋友做过,当然很多人只是练爬虫,但没有对爬取数据进行一些可视化去发现一些比较有意思的东西,今天想要通过抓取的数据进行一些比较有趣的统计分析. 如果你想要这份数 ...

  5. 图片上加动图怎么弄_用PS把千张图片拼成心爱的人的样子,只需三步!

    把千张图片拼成一张图像也就是千图成像,用PS还是很简单的,虽然说我还在存够心爱的人的千张图片的路上,但是这个技巧可以先学上. 教程开始 步骤一:准备好图片,如果图片尺寸不统一,可以用PS的这个自动批量 ...

  6. ER图连接线上加个圆圈什么意思_你们要的PS抠图插件来了 抠图神器:Topaz教程 Winamp;Mac双版本下载...

    现在的PS,各种外挂插件的功能越来越强大,可以做好多事情,比如之前说过的DR4,就非常全能.但是它没有抠图功能,所以今天介绍给小伙伴们一个新的插件,抠图神器:Topaz.下载方法放在文章末尾. 这款插 ...

  7. ER图连接线上加个圆圈什么意思_没有声母的音节叫什么?零声母音节

    学拼音时,我们会遇到一些音节没有声母,那我们如何来学习呢? 首先的告诉大家,没有声母的音节叫什么?零声母音节. 什么是零声母呢? 普通话的零声母音节是,没有声母的音节. 首先写出下面写出所有的零声母音 ...

  8. ER图连接线上加个圆圈什么意思_江南百景图:应天府、苏州府之后还有哪些?...

    入坑江南百景图两天,还没解锁苏州府. 看着别人秀苏州府的繁华,我只能看着自己的两条船,望大地图而兴叹-- 然而突然,我怎么好像在地图里发现了上海的崇明岛???(右侧中间那个长长的岛) 穿过应天府的那条 ...

  9. 6.java中什么是类_类、对象(java基础知识六)

    1.Java约定俗成 java约定俗成1,类名接口名 一个单词首字母大写,多个单词每个单词首字母都大写2,方法名和变量名 一个单词全部小写,多个单词从第二个单词首字母大写 建议:如果能用英语尽量用英语 ...

最新文章

  1. Windows 7中200M神秘隐藏分区
  2. 拉取远程分支到本地分支_保险公司在本地没有分支机构可以投保吗?异地投保会影响理赔吗?...
  3. 10、并发容器,ConcurrentHashMap
  4. ThreadX应用开发笔记之二:移植ThreadX到STM32H7平台
  5. 如何使用Bioconductor进行单细胞分析?
  6. mysql 隔行记录_php mysql数据输出实现隔行变色的简单示例
  7. msys2软件包管理工具pacman常用命令
  8. 从人与世界的关系上来看,人其实分为两部分
  9. Unique Binary Search Trees,Unique Binary Search Trees2 生成二叉排序树
  10. Java 8 中的 CompletableFuture 太好用了!20 个示例全分享…
  11. Python使用requests发送post请求
  12. 基于ASP的在线邮件收发系统研究设计
  13. 面经个人向(算法岗)
  14. 微信小程序分享二维码扫码进入如何获取参数,小程序码进入参数为啥拿不到;
  15. 【Mysql密码管理】-【管理员密码已知、未知(忘记密码)、破解】
  16. 好书推荐《月亮与六便士》
  17. 《machine learning in action》机器学习 算法学习笔记 决策树模型
  18. Java生成海报带二维码,原图或base64返回
  19. 【答粉丝问】面试时,面试官说“谈谈你的缺点”时,该怎么回答?
  20. ip_forward参数对Linux内核转发影响分析

热门文章

  1. 用Java通讯录字母排序,按所有Catorgories显示联系人数据库标记,然后按字母顺序排序| PHP SQL...
  2. 快速排序 python 4种写法_[算法] 关于快速排序的四种写法
  3. bzoj1066 [SCOI2007]蜥蜴 网络流复制点模型
  4. 2017.9.5 组合数学 思考记录
  5. 【英语学习】【Daily English】U06 Shopping L01 We are out of pasta.
  6. IDEA 点击进入方法内部_一份最详细的 IDEA调试教程,让bug无处藏身!
  7. python初学者用什么软件_初学者编写python用什么软件
  8. php自动滚动到页尾,让DOM元素自动滚到视野内ScrollIntoView
  9. c++怎么将两个类的方法集合成一个类的方法_一文帮你梳理 Java 集合
  10. Unreal角色技术指南