Java实验记录-1

要求:

  1. 模仿个人银行账户管理系统的C++版本(第4章-第8章),使用Java语言重新实现该系统,比较C++与Java在实现上的异同,熟练掌握Java基础及语法。
  2. 根据系统需求的演化,逐步完善个人银行账户管理系统的功能,改进代码,体会面向对象思想的封装、继承、多态特性在实际系统中的应用,初步掌握使用Java编写可复用、可扩展、可维护代码的基本技能。

版本记录:

  • 版本1:4_9

    • C++中的double accumulate(int date) const用Java语言实现时,应去掉const,并加上final修饰
    • Java中,类的成员函数不能先写函数声明再将函数体内容写在后面,否则报错,如图。
      在这里插入图片描述
    • C++中使用的cout语句需要改为System.out.println(),同时这条语句也可单独使用来进行换行
    • Java中对象的创建需要借助引用
    • 注意主函数的固定格式为public static void main(String[] args)

    最终输出结果如下:

    在这里插入图片描述

  • 版本2:5_11

    • 相较版本1增加了静态属性与方法

    最终输出结果如下:
    在这里插入图片描述

  • 版本3:6_25

    • 相较于之前又增加了字符串和对象数组
    • 另外,在这一版本中多了一个调用类Date,因此需要创建package来实现
    • C++源代码中出现const std::string &getId() const { return id; }这种函数前后均有const的情况,改为Java语言时,我仅在函数前增加了final,和其他函数的处理方式没有区别,不确定是否正确且规范,但仅从这个实验的输出结果来看是可行的
    • 对于源代码中的const int n = sizeof(accounts) / sizeof(SavingsAccount);,Java中没有sizeof的用法,因此这里根据程序实际内容直接将等号后部分替换为2
    • 最后还有一点小细节,使用System.out.println()将会默认换行,因此为了保持与C++源代码的输出形式一致,在某些地方应使用System.out.print()(无换行)

    最终输出结果如下:
    在这里插入图片描述

  • 版本4:7_10

    • 子类继承父类后,构造函数中子类数据成员初始化的同时,需要利用super()函数对父类的数据成员进行初始化
    • 子类方法需要调用父类方法时,父类函数不能用final,否则将会报错如下:
      在这里插入图片描述
      在这里插入图片描述

    最终输出结果如下:
    在这里插入图片描述

  • 版本5:8_8

    • 当类内部有抽象方法时,需要将类也改为抽象类,否则报错如下:
      在这里插入图片描述
      在这里插入图片描述
      抽象类中可以有零个或多个抽象方法,也可以包含非抽象的方法。只要有一个抽象方法,类前就必须有abstract修饰,如果没有抽象方法,类前也可有abstract修饰。
    • abstract不能与final并列修饰同一个类(因为final修饰的类为最终类,不能有子类,这与abstract必定有子类有逻辑矛盾),否则报错如下:
      在这里插入图片描述
      在这里插入图片描述
    • 这一版本中需要从键盘中接收一个字符,而Java原本并不支持接收单个字符,所以可以先接收一个字符串,然后再取字符串的第一个字符即可。

    最终输出结果如下:
    在这里插入图片描述
    后续需自己输入,此处不展示

  • 版本6:9_16

    • C++中使用容器代替数组,而Java版本中,使用import java.util.ArrayList;即可实现这一功能
    • 增加账户部分代码如下:
      在这里插入图片描述
    • C++中delete accounts[i];这一语句到Java版本可以使用accounts.remove(i);
    • 除此以外,其他几个类与上一版本基本无区别
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值