一.final的作用
1.final 可以修饰变量(局部变量、实例变量、静态变量)
(1)final 修饰的变量是作用范围内的常量,只允许一次赋值,不允许更改。
注意:final修饰的变量通常以全大写字母作为名字,例如:final double PI=3.14;
(2)final 修饰实例变量,jvm不在分配默认值。final修饰实例变量初始化的位置:
a.在声明的同时给其初始化。
b.可以在构造方法中对其初始化,但是必须保证每一个构造方法中都有对其初始化的语句
(3)final修饰的静态变量,jvm不在分配默认值。final修饰实例变量初始化的位置:
a.声明的同时为其初始化
b。可以在静态代码块中完成对其初始化
(4)如果引用被final修饰,代表阴用中存储的对象地址不可以改变,但是可以通过引用对对象中的属性进行改变
2.final修饰方法
被final修饰的方法能被子类继承,但是不允许子类覆盖
3.final修饰类
被final修饰的类不能被继承,既没有子类。例如:System、String、Math等一些工具类通常会定义为final类
思考:
1.abstract、static、final可以修饰哪些内容?
2.三个修饰符可否修饰构造方法?
3.private、abstract、static、final能否联合修饰成员方法
a.private 和abstract
b.static和abstract
c.final和abstract
4.一个方法中必须而且只能有一个访问修饰符
注意:修饰符和访问修饰符是不同的概念,切勿弄混