当前位置 : 主页 > 编程语言 > java >

利用类接口技术完成排序

来源:互联网 收集:自由互联 发布时间:2022-10-26
(接上讲) 三接口实例的应用及思路分析 在上面的两讲中,我们讲了接口和类的关系,从中我们注意到,接口是类的模板,类是实现接口的,在之前的讲解中我们也了解到,类是对象的模


  (接上讲)

  三接口实例的应用及思路分析

  在上面的两讲中,我们讲了接口和类的关系,从中我们注意到,接口是类的模板,类是实现接口的,在之前的讲解中我们也了解到,类是对象的模板,对象是实例化类得到的。那么从这讲开始,我将利用相当的时间给大家讲解一个实例,让大家从这个实例中了解到接口、类、对象、过程、函数等概念的具体的应用。

  实例:实现某列文本数据的排序,要求:

  1 读取数据,预存在数组中

  2 实现按照指定的要求排序,一是按冒泡排序,二是实现快速排序

  3 实现排序过程中的比较方式不同,一是区分大小写,二是忽略大小写。

  4 排序后将数组回填给某列。

  这里我给出了一列的测试数据:

  

利用类接口技术完成排序_数据结构

  上述数据共3000行,其中有几个小写的字符数据,我们要实现按照上述要求排序。

  思路分析:

  1 建立一个排序的接口。对应两个类用于实现排序接口,一个类实现冒泡排序,一个类实现快速排序。

  2 建立一个比较的接口。对应两个类用于实现这个比较接口,一个类用于区分大小写的比较,一个类用于忽略大小写的比较。

  3 在标准模块中实现数据的读取,数据的传递,数据的反馈。

  4 在标准模块中实现排序及比较的选择。

  实现思路结构的搭建:

  1 Isortable 接口,这个接口定义排序。为了实现这个接口建立两个类:一个是Csortermp,实现冒泡排序,这个类中实现一般的排序方案,比较,然后根据比较的结果实现位置的调换,达到冒泡的目的;第二类是Csorter,实现快速排序,这种排序方法在很多资料上都有介绍,就是通过取中间值,递归实现分布比较达到排序的目的,这种方法在数据量大时,可以显著的节约时间。

  2 Icomparer接口,这个接口定义了比较。也有两个类实现这个接口,一个类是CompareIgnoreCase,用于忽略大小的比较,一个类是CompareUseCase,用于实现大小写的比较。这两个类可以利用StrComp()函数实现,这个函数中可以利用参数vbBinaryCompare和vbTextCompare实现是否区分大小写的目的。

  3 标准模块:在标准模块中将要求用户选择排序的方式和比较的方式,根据用户的选择实现不同类的实例化过程。

  这种思路的优点:

  1 不同的模块实现不同的功能,从而达到低耦合性。当有一个模块的逻辑进行修正时不会影响其它的模块。

  2 给程序升级带来方便。当我们想利用其它的方法实现排序时,这需要再建立一个新类实现Isortable排序的接口;如果我们要利用其它的方法实现比较时,只需要建立一个新的类实现Icomparer比较接口,而不必去修改其它的代码。

  3 给自己的代码库增加筹码。我一直推崇的是积木编程,通过上述思路的实现,可以增加自己的积木库,在后续自己写代码时可以利用上述的类和接口。这需要在标准模块中调用这些积木。

  4 在某种程度上讲,代码具有遗传性,这种遗传性给理解代码带来很大的便利。自己写的代码可以自成体系。

  从下讲开始将正式进入代码搭建讲解部分。

  今日内容回向:

  1 如何利用接口实现我们的目的?

  2 利用接口的好处用哪些?

  

利用类接口技术完成排序_大小写_02

  在取代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

  

利用类接口技术完成排序_排序算法_03

  最后将一阙词送给致力于VBA学习的朋友:

  浮云掠过,暗语无声,

  唯有清风,惊了梦中啼莺。

  望星,疏移北斗,

  奈将往事雁同行。

  阡陌人,昏灯明暗,忍顾长亭。

  多少VBA人,

  暗夜中,悄声寻梦,盼却天明。

  怎无凭!

  分享成果,随喜正能量

  举报/反馈

上一篇:关于java中jdk的环境变量配置
下一篇:没有了
网友评论