final 实例域
可以将实例域定义为final。构建对象时必须初始化这样的域。也就是说在一个构造器执行之后,这个域被设置,并且之后无法对其修改
final 修饰符大多应用于基本(primitive)类型域,或不可变(immutable)类的域(如果类中的每个方法都不会改变其对象,这个类就是不可变类。如String)
静态域与静态方法
如果将域定义为static,每个类中只有一个这样的域(类域)。而每一个对象对于所有的实例域却都有自己的一份拷贝。
静态常量
public static final double PI =3.14255 // 定义一个静态常量
静态方法
静态方法是一种不能向对象实施操作的方法。
静态方法可以访问自身类中的静态域。
使用静态方法的两种情况
* 一个方法不需要访问对象状态,其所需参数都是通过显式参数提供
* 一个方法只需要访问类的静态域
main 方法
* 不需要使用对象调用静态方法,即不需要先构造类对象就可以调用相应的方法。如Math.pow
* 所以main也是一种 静态方法。
* main方法不对任何对象进行操作
* 每一个类可以有一个main方法。这是一个常用于对类进行单元测试的技巧