c++ 银行管理系统重构为java代码的感悟

c++ 银行管理系统的代码的简介:

c++的源码一共有6个版本:
第一个版本很简单,只用了一个非常简单的account 类就实现银行管理系统,操作也比较单一,数据不能动态的添加,只能在main函数里面,对数据进行添加,函数也比较简单。

第二个版本,将main函数和account 分离开,这样看起来逻辑比较的清晰,但是数据依然不能进行动态的添加,里面的函数依然是比较的简单,功能较少。

第三个版本,在原来的基础上,将account 函数,分隔开来,分为了SavingAccount和Date 两个类,将对数据的操作和账户的操作给分开了,这样分开,能够使文件更加的接近真实的情况。数据依然不能动态的增加。

第四个版本 ,增加了使用了继承这一手段,首先建立一个account 的父类,并且将show (),error(),record(),函数设置为protected 属性,使其可以在子类中可以直接调用,或者进行重写,然后以account 函数 为父类,继承得到了两个子类,creditaccount和savingaccount 函数,由此程序,creditaccount可以对银行的账户进行,增加删除,以及对每个账户进行操作,使用savingaccount函数可以对账户中的金额进行操作,代码功能产不多快要完成。

第五个版本,account 引入了虚函数,使得子类的扩展更加方便,这是数据可以动态的操作。

第六个版本 新加了一个模板类Array用于储存账户信息,此时银行管理的功能基本实现,数据添加也比较的方便,代码重构方便,逻辑性强。

== 总结:== 代码一个又一个版本的更新,功能逐渐的完善,随着继承,重载技术的使用,代码逐渐变得简单,可扩展性增强,实用性增强。

使用java 改写c++代码时遇到的问题:

  • 前五个版本基本没有什么问题,问题出现较多的是最后一个版本,代码引入了Array模板类,本质上是一个一个数组,这个Array 类在使用的时候重载了[ ] ,+,-,=,运算符,在java 的代码中重载运算符是不允许出现的,因为java 当初开发的时候就是为了避免c++函数重载各种运算符的混乱性,但是java 中各种丰富的方法就可以实现了重载运算符的功能。还有就是 使用Array初始化的时候,出现一个问题:
Arrayaccounts=Array();

这句话初始化的时候已经就将,Account 需要的空间分配好了,而在java 中,

Array accounts=new Array();

这句话,仅仅将对象的引用的空间分配,好,需要正式的空间,还需要 使用,去 new 到需要的空间,到后面才能自由的进行操作。
c++ 里面的模板类,可以实用,java 里面的 object类去进行实现,因为object 类是所有对象的父类。

你可能感兴趣的:(我的java学习之路)