1. final修饰符所修饰的内容:(1)用final修饰的类不允许被继承,即没有子类。(2)用final修饰的方法不允许被子类覆盖。(3)用final修饰的变量表示常量,只允许被赋一次值。
2. final变量的语法规则:(1)final修饰符可以修饰静态变量、实例变量和局部变量,分别表示静态常量、实例常量、局部常量。(2)final变量必须显式初始化,否则会导致编译错误。对于final类型的实例变量,可以在定义变量时,或者在构造方法中进行初始化。对于final类型的静态变量,只能在定义时进行初始化。(3)final变量只能赋一次值,不允许改变final变量的值。
3. static修饰符所修饰的内容:(1)用static修饰的成员变量被称为静态变量或类变量,可以直接通过类名来访问。(2)用static修饰的成员方法被称为静态方法或者类方法,可以直接通过类名来访问。(3)用static修饰的程序代码被称为静态代码块,当Java虚拟机加载类时,就会执行该代码块。
4. static修饰符的语法规则:(1)在静态方法中不能使用引用当前实例的this关键字,也不能直接访问所属类的实例变量和实例方法,但是可以直接访问所属类的静态变量和静态方法。(2)在类A的静态方法中,如果要访问类A的实例变量和实例方法,必须通过类A的特定实例的引用来访问它们。(3)在实例方法中可以直接访问所属类的静态变量、静态方法、实例变量和实例方法。(4)静态方法不能被abstract修饰。(5)当类被加载时,静态代码块只被执行一次。类中不同的静态代码块按它们在类中出现的顺序被一次执行。