第一个版本:4_9
- java里面没有c++ 里的namespace,而是换成了package。
- private,public等在Java里面需要单独写在每一个成员前面。
- Java里不允许普通函数(除抽象类,接口等)的声明与函数体分开,要写一起。
- c++ 里面void test (int _x) const{}时const指该函数不能修改类的成员,而Java 里面final void
- test(){}时final表示该函数不能被重写。Java里没有const。
- Java里的输出是语句是System.out.println(变量名 + “字符串”);相当于“<<”改成了“+”。
- Java里是不用写什么math.h等头文件的,类库里都有。比如取整:Math.floor() 。
- c++ 里面建立类的对象可以直接:类名 对象名(参数),而Java里面需要:类名 对象名 = new 类名(参数)。
第二个版本:5_11
- Java里面没有const修饰符,有类似的final,但两者功能有所差异。
- Java里的构造函数没有id(id)这种写法,大多是this.id=id。
- c++调用类的静态成员函数是 类名::函数名,而Java是 类名.函数名。
第三个版本:6_25
- Java里没有像c++一样的&符号引用,创建对象时一律使用new。
- Java里是不允许全局变量的,因为这会破坏封装性。
- Java里的异常退出exit(1)需要调用System.exit(1)。
- Java里的字符串类型是一个类String,还有print不输出换行,println才换行。
第四个版本:7_10
这个版本相较于以前的版本,在语法方面没什么明显改变,本版本加入抽象类,来方便实例化两个有些相似的子类,大体方法是和c++一样的,只是一些关键字不太一样。
第五个版本:8_8
- 在改代码过程中对于show函数是否定为虚函数有很大麻烦,因为两种语言格式不一样,最后取消了纯虚函数的设置,不过也加深了对java的理解。
- 本版本实现类2个很常见的要求:批量操作和统一接口,因为对象类型不一样,还要求统一实现,就用到虚函数,而函数接口设置为一样,在函数体额外加判断条件,来达到接口统一,更利于程序的封装性,安全性。
- java里面的输入输出很有趣,也是调用类库,比如java.text.DecimalFormat可以控制输出小数点,java.io.IOException和java.util.则是输入的专用库,每种类型的输入还不一样,真的很方便啊!
Date类和Accumulator类和之前一样,CreditAccount只有show函数不太一样
第六个版本:9_16
先说些两种程序的不同点。C++里面有动态数组模板Array,可以动态添加对象,java里面有ArrayList,对于这个一开始真的很烦,要去不停的查询,因为他是类库里的东西。各种方法都有。只是我不会用罢了,所以这次的改编基本都在查资料。不过ArrayList确实很方便使用。
只有主函数和上一版本不一样,其他的类一模一样