java的四舍五入
1、 ROUND_UP:远离零方向舍入。向绝对值最大的方向舍入,只要舍弃位非0即进位。
2、 ROUND_DOWN:趋向零方向舍入。向绝对值最小的方向输入,所有的位都要舍弃,不存在进位情况。
3、 ROUND_CEILING:向正无穷方向舍入。向正最大方向靠拢。若是正数,舍入行为类似于ROUND_UP,若为负数,舍入行为类似于ROUND_DOWN。Math.round()方法就是使用的此模式。
4、 ROUND_FLOOR:向负无穷方向舍入。向负无穷方向靠拢。若是正数,舍入行为类似于ROUND_DOWN;若为负数,舍入行为类似于ROUND_UP。
5、 HALF_UP:最近数字舍入(5进)。这是我们最经典的四舍五入。
6、 HALF_DOWN:最近数字舍入(5舍)。在这里5是要舍弃的。
7、 HAIL_EVEN:银行家舍入法。
四舍五入那么保留位就必不可少了,在java运算中我们可以使用多种方式来实现保留位。
1、BigDecimal结合setScale设置精度。
2、new java.text.DecimalFormat(”#.00″).format(3.1415926)
3、string.format("%.5f")
java的抽象类与接口
抽象类是对面向对象的一种概念性的描述,不能实例化。是一种数据的抽象的思想是实现多态的一种机制,定义一组抽象的方法,具体实现是由派生类来实现。抽象类提供了继承,抽象类的存在意义在就是为了继承,
抽象类的几点:
1、抽象类不能实例化,实现由子类完成。
2、抽象方法子类重写。
3、只要类中有抽象方法该类就定义抽象类,不管是否还有其他方法。
4、抽象类可以有非抽象方法,子类的抽象方法不能与父类抽象方法同名。
5、abstract不能与final共同修饰一个类,一个用于继承一个是最终类矛盾。abstract也不能与private、static、native共存。
接口:接口是一个更抽象的类,不能实例化接口只能实例化他的实现类。接口描述的是类之间关系,实现该接口的类必须实现该接口的所有方法。接口时抽象类的延伸,java只支持单继承接口一个类可以实现多个接口,不管这些接口之间有没有关系,接口弥补了继承只能单继承的缺陷。
接口的特点:
1、接口中默认的修饰public,其实只能是public,可以显示声明protected、private但编译出错。
2、接口中的定义变量是常量即public static final;
3、接口中不存在实现的方法,实现接口的非抽象类要实现接口中的所有方法,抽象类则不必。
4、实现多接口的时候一定要避免方法名的重复。
抽象类与接口的区别:他们之间存在很大的相似处有时也可以替换,但是他们的设计理念还是有很大差别。
1、抽象类是对类的抽象,而接口是对行为的抽象。抽象类是对整个类进行抽象,包括属性、行为。
2、抽象类是对相似类的抽取共性的概念。他是在子类中发现公共的部分泛化抽象类,接口则是不要求实现子类之间关系密切。猫狗抽象成动物类有吃的方法,风筝和鸟都实现飞的接口。抽象类体现一种继承关系,继承要合理子类与父类是is-a的关系,子类与父类本质上相同,而接口并不要求实现着概念上本质上一样,仅仅是定义一种规则
3、抽象类是一种自下而上的设计,子类抽象成父类。接口则不需要知道子类的存在就可以定义一种规则。