个人银行账户管理C++转换为Java注意事项

4_9

1.在定义数据成员时,C++可以使用冒号与缩进一起定义多个数据成员或者成员函数类型,而Java中不可以使用,需要一个个去加修饰词。
2.C++代码中有一个被const修饰的成员函数,当把这段复制到Java中时是不允许通过的,会出现“Unresolved compilation problem”的错误。然后经过查询找到了这样一些说法:const是Java预留关键字,用于后期扩展用,用法跟final相似,不常用。final主要有三种用法:
①修饰变量:final成员变量表示常量,只能被赋值一次,赋值后值不再改变。
②修饰方法:final方法不能被子类方法覆盖,但可以被继承。
③修饰类:final类不能被继承,没有子类,final类中所有方法都是final的。
3.C++代码中是先声明后实现的成员函数,Java中我把这两项合了起来但需要注意的是成员函数的书写要用到this语句,如果不注意的话结果是这样的:
这个是错误结果
可以看出来结果不仅是id账号显示有误,下面这两句也相当于没有意义 :在这里插入图片描述
所以这样写就是可以的:

5_11

1.C++这个是写在一个文件夹里的,然后在Java中我就写在了两个包里。关于如何写在两个包里课本里都有详细的说明,这个也是需要注意的。
2.在cpp文件中有这个一个头文件“#include ”这个是C++的标准头文件,是一个数学函数库,里面包含了很多数学方法的实现方法。在代码里用到了floor函数(向下取整),在Java程序里不需要头文件,是通过 “Math.floor( )”语句直接调用的。
3.相比较第一个,这个代码里面增加了一个静态数据成员和一个静态的成员函数。static double total=0
public static double getTotal() { return total; }
System.out.print("Total: "+sa0.getTotal());//任意一个对象引用调用都可以实现,即也可写成sa1.getTotal()。

6_11

1.Java里没有C++的“&”符号引用,创建对象时需要使用new才可编译。
2.C++里面的异常处理方式是 exit(1),而 Java里的异常退出需要调用System.exit(1)。
3.Java里的字符串类型是一个类String,需要将C++里的std::string改成String。
4.需要注意namespace的实现,注释内容是:namespace使下面的定义只在当前文件中有效。存储平年中某个月1日之前有多少天,为便于getMaxDay函数的实现,该数组多出一项。 对此我们可以通过下面这样来实现:
在这里插入图片描述

7_10

1.本题增加了类的继承与派生,变动相对来说还是比较大的。首先要清楚Java语言是如何实现的继承与派生的,然后需要注意关键字的不同,要特别留意类的域变量和成员方法的权限问题。还要注意对父类的调用super语句的正确使用。
2.要注意C++里虚函数的使用,在Java里面那些函数前面都加了abstract关键字变成抽象的,关于抽象类我还没有完全理解,就是机械的把所有的virtual换成了abstract,然后发现改了之后运行结果是对的。这个我觉得之后我还需要好好去查资料,去学习相关知识。

8_8

本题主要的问题是Java语言中如何实现输入:
Java程序开发过程中,需要从键盘获取输入值是常有的事,但Java它偏偏就没有像c语言给我们提供的scanf(),C++给我们提供的cin()获取键盘输入值的现成函数。经过查询资料找到了三种输入方法:
① 从控制台接收一个字符,然后将其打印出来,使用库import java.io.以及 char i = (char) System.in.read();语句。
② 使用Scanner 库可以实现多形式的输入,比较方便。
③ 接受一个字符串时,还可以使用import java.io;来实现。
我在这道题的运行中遇到了一个接近死输出的问题,运行之后Eclipse就卡了,点也点不动。问题就是在desc的获取时我用了toString()这个方法,然后输出是有问题的,之前没有注意这个然后试了很久之后发现写成next()就可以了。我的理解是toString是转换成String类型,而我在定义的时候本来就是String类型,所以获取的时候就不适合用它了。

9_16

本题C++代码用了模板以及使用容器代替数组,由于C++模板那块的知识没有掌握,这个题改起来很吃力。虽然除了Array.h这个文件和主函数的部分与第五题不一样,其他都一样,但是这些内容对我而言掌握起来还是存在很大问题的。经过查找资料,看他人的代码,我勉强过关了,提一些我觉得需要注意的地方吧:
C++的数组是直接创建的,而Java数组是先引用后对象,所以这方便了Java不用像C++一样再写一个Array.h的类来专门实现容器这个功能。然后就是C++里面有动态数组模板Array,可以动态添加对象,java里面有ArrayList,是类库里的东西,各种方法都有,需要不断的查资料。
其实对我而言改这些代码很困难,我花了特别多的时间去查资料,去咨询他人,但是最终还是完成了。总之我觉得只要愿意花时间总会进步的,加油吧!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值