编程细节
在判断两个浮点数是否相等时可判断他们差的绝对值是否小于某个很小的数
Math.abs(x - y) < 0.00001
判断两个引用类型相等不能使用 == 运算符
String s1 = "hello"; String s2 = "HELLO".toLowerCase(); s1 == s2 //false
应该使用 equals();注意: s1.equals(s2) 会因为s1为null,导致程序出现报错。当我们确定某个值不为null时,可以将它写在前面:"abc".equals("abc")
final关键字
其修饰的基础类型变量不能修改其值,可以在构造函数中初始化这些变量
其修饰的类不能被继承
其修饰的函数不能被覆写(override)
抽象方法
类中有抽象方法,其类就必须被定义为抽象类(因其方法不能被执行);抽象类不能实例化,只能被继承。
抽象方法必须被覆写
接口(interface)
如果一个类没有字段,所有方法都是抽象方法;可以把该抽象类改为接口。
抽象方法本质上是定义接口规范:即规定高层类的接口,从而保证所有子类都有相同的接口实现.
当一个具体的类去实现接口时,使用implements
静态字段
应使用 类名.静态字段 来访问,因为实例对象并没有静态字段
静态方法
在方法内部,不能使用this,也无法访问实例字段,但可以访问静态字段
接口的静态字段
因为interface
是一个纯抽象类,所以它不能定义实例字段。但是,interface
是可以有静态字段的,并且静态字段必须为final
类型: