信2105-3班张少阳20213904Java课堂实践性动手动脑问题的解决和报告
首先,在课堂上我们回顾了《大道至简》这本书的核心思想,编程主要分:顺序,分支,循环。首先要学会分析需求,找出项目沟通的基本方式,制定项目目标和技术方案,最后用编程实现问题的解决。编程思维即为分解问题,模式识别,进行抽象,最后用算法解决。在第一次实现宿舍管理系统的作业中,该思想运用的就很明显。第一次分解,主要分为了数据类和执行类。第二次分解,将执行类再分为多个模块,一一进行解决。第三次分解,将针对于主方法的图行页面,以及几个执行方法中为增强健壮性而采取的分支和增加。写完后,逐个模块进行测试,整合,再测试整个程序的性能。
接着又对枚举类型进行了学习,首先定义了两个枚举类对象,s和t,让s==t,结果发现返回值为false,说明枚举类是引用类型,代表的是一个地址,两个对象的地址显然不同。接着在用s.getClass().isPrimitive()判断Size是否为基本数据类型,结果也为false。接着利用枚举类里面的静态方法valueof将字符串转换为枚举类型U,让u==s,发现返回值为ture,进一步证明了枚举类型是引用类型。最后values()以数组形式返回枚举类型的所有成员。
接着又运行了TestDouble.java这个文件,发现double类型数据是不精确的,比如0.6是0.59999无限趋近于0.6. 归根结底,这个问题涉及到二进制与十进制的转换!!
我们知道计算机进行的是二进制运算,我们输入的十进制数字会先转换成二进制,进行运算后再转换为十进制输出。
Double类型的数值占用64bit,即64个二进制数,除去最高位表示正负符号的位,在最低位上一定会与实际数据存在误差。说白了,double类型数据在计算机中,在很多情况下,补码二进制计算出来的十进制结果无法和我们想要的结果相同,即出现了误差。
后来我们利用println输出语句明白了➕是用来连接字符串的作用,加号当然也能进行四则运算,从左到右依次进行计算,若出现了字符串类型,则进行字符串连接。
最后老师要求我们精读《程序员修炼之道:从小工到专家》,我相信经过阅读和努力,我一定会有所收获。