上课总结
对于第一个动手动脑里面的问题,在枚举类型里面的数据是不一样的是s!=t。枚举型是一个集合,集合中的所有元素(枚举成员)是一些命名的整型常量,元素之间用逗号隔开。对于enum后面的枚举类型名称仅仅是这个集合的名字,是一个可选项,即是可有可无的选项。在jave中枚举类型的用法主要有四点:一是枚举型常量,首席按枚举是一个特殊的class,相当于final static修饰,不能被继承。所有的枚举类型都继承自jave.lang.Enum类,jave不支持继承所以枚举对象不能继承其他类。在每个枚举类中成员变量都又final static修饰;二是带一个参数的枚举;三是向枚举中添加新方法;四是覆盖枚举的方法。枚举类型是引用类型,并不属于原始数据类型,它的每个具体值都引用一个特定的对象,相同的值则引用同一个对象。在枚举中可以使用“==”和equals()方法直接对枚举变量的值,换句话说,对于枚举类型的变量“==”和equals()方法执行的结果是等价的。
第二个动手动脑中的得到的结果是使用double类型的数值进行计算,其结果是不精确的。对于jave中double类型精度失真的原因:存放double数字的数组,是有限位的(符号位1,指数位11,尾数部分52,float是1,8,23),所以在数字的小数位转二进制时,如果转换后的二进制是个死循环,那么就会把后面的尾数抛弃掉,从而造成转10进制时,出现了精度丢失。jave的浮点数只能用来进行科学计算或工程计算,在大多数的商业计算中,一般采用jave.math.BigDecimal类来进行精确计算。具体的使用步骤为1.用 float 或者 double 变量构建 BigDecimal 对象。通常使用 BigDecimal 的构造方法或者静态方法的 valueOf() 方法把基本类型的变量构建成 BigDecimal 对象。2.通过调用 BigDecimal 的加,减,乘,除等相应的方法进行算术运算。3.把 BigDecimal 对象转换成 float,double,int 等类型。这样便可解决精度丢失问题。
在最后的实验中,我深刻的了解到了程序分解的重要性,无论对于多么长的代码,他们都是由一块一块组成的,就像搭积木一样有一块一快组成,且没一块都不能出现问题,这样才可以完整的搭建出自己想要的模型,在程序中讲究逐渐增加功能,可以先把大致的框架写出来然后添加所需要的功能。
原码,补码,反码问题。原码就是十进制数字最原始的二进制表示,在Java中,对于整数而言,其原码格式为最高位为符号位,该位上1表示负数而0表示正数,剩余位数为该数字的二进制表示。正数的反码为其原码,负数反码是除了最高位的符号位外,其余位数取反(0改为1,1改为0),便得到了当前负数的反码。正数的补码为其原码,负数的补码是反码加1。在jave中所有数据的表示方法都是以补码形式来表现得,对于正数而言,原码,补码,反码相同,对于负数而言,符号位为1,其余各位是对原码取反,然后整个数加1。~按位取反(反码加1称为补码。)步骤就是先求出这个数(因为java存的数是补码)的原码,然后对原码取反得到X,这个X就是我们要求的那个数的补码。