static:用来修饰字段和方法。
通常情况下,我们通过创建类的对象来访问其字段和方法,而将字段或方法声明为static意味着这个字段或方法作为整个类而不是类的某个特定对象而存在,可以通过类名直接引用它们。
一个static字段对每个类来说都只有一份存储空间,而非static字段则是对每个对象有一份存储空间。
static方法的一个重要用法就是不用创建对象而通过类直接引用它。
final:用来修饰字段、方法和类。
final修饰字段。对于基本类型,final使数值恒定不变,而对于对象引用,final使引用恒定不变,一旦引用被初始化指向一个对象,就无法把它改为指向另一个对象,然而,对象其本身是可以被修改的。
一个既是static又是final的字段只占据一段不能改变的存储空间。
带有恒定初始值(即,编译时常量)的static final基本类型全用大写字母命名,并且字与字之间用下划线隔开。
空白final是指声明为final但又未给定初值的字段,这个字段在运行时初始化,并在以后保持恒定不变。
final参数意味着你无法在方法中更改参数引用所指向的对象,你可以引用参数,但无法改变它。
final修饰方法。使用final方法的原因有两个,第一个原因是把方法锁定,以防任何继承类来修改它的含义。这个出于设计的考虑:想要保证在继承中使方法行为保持不变,并且不会被覆盖。
使用final方法的第二个原因是效率。如果将一个方法指定为final,就是同意编译器将针对改方法的所有调用都转为内嵌调用,而编译器会根据开销情况明智的抉择是否对final方法执行内嵌调用。
类中的所有private方法都隐式的指定为final的。
final修饰类。将某个类定义为final表明该类不能被继承。
final类的字段可以根据个人的意愿选择是或不是final,不论类是否定义为final,相同的规则都适用与final字段。
而final类的所有方法都隐式的指定为final的。
posted on 2006-12-04 01:22
jinn 阅读(682)
评论(0) 编辑 收藏 所属分类:
Java/j2se