static 定义属性和方法 1.只有一个存储地址,被所有的对象共享(无论通过那个对象修改,都会对其他对象产生影响), 无需创建对象就可以用 className.property或className.method()访问属性和方法 2.既然不需要创建对象(对象在运行期创建)就可以使用static属性和方法, 那么static属性和方法应该是在编译期就被赋值。
final 定义属性和方法 1.定义属性时,该属性在定义时就要被赋值,而且以后不允许给该属性在赋值 2.定义对象的引用时,该引用只能在定义时指向某一对象,而且以后不允许给该引用再指向其它的对象 但是,允许非final型的引用指向该对象。也就是说,final只限定了引用而没有限定对象 3.如果final限定对象,那么该对象就不能被任何引用访