《final修饰符》由会员分享,可在线阅读,更多相关《final修饰符(2页珍藏版)》请在金锄头文库上搜索。
1、Final修饰符 Final关键字可以修饰类、变量、和方法,用于表示它修饰的类、变量、方法不可改变。1, final修饰成员变量成员变量是随类的初始化或随对象的初始化而初始化。当类初始化时,系统会为该类的属性分配内存空间,并分配默认值,当初始化对象时,系统会为该对象的实例属性分配内存空间,并分配默认值。也就是说,当执行静态初始化块时,可以给该类的属性赋初始值,当执行普通初始化块、构造器时可对实例属性赋初始值。因此,成员变量的初始值可以在定义该变量时指定默认值,可以在初始化块、构造器中指定初始值,否则 ,成员变量的初始值将是由系统自动分配的初始值。对于final修饰的成员变量而言,一旦有了初始值
2、,就不能重新赋值,因此不可在普通方法中对成员变量重新赋值,成员变量只能在只能在定义该变量时指定默认值,或者在静态初始化块、初始化块、构造器中为成员变量指定初始值,如果即没有在定义该变量时指定初始值,也没有在初始化块,构造器中指定初始值,则改变量的值一直是0、false null 0.000因此final修饰的类是属性,实例属性修改的地方归纳如下:n 类属性:可在静态初始化快中,声明该属性时指定初始值。n 实力属性:可在非静态初始化块、声明该属性、构造器中指定初始值。2、final修饰的基本类型和引用类型变量的区别 Final修饰的基本类型变量时,不能对基本变量重新赋值,因此基本类型变量不能被改
3、变。但对引用类型而言,它保存的仅仅是一个引用,final只保证这个引用的引用地址不会被改变,即一直引用同一对象,但这个对象完全可以改变。所以final修饰的引用变量无法在编译时获取值,而是在运行时获取值。3、final方法 Final修饰的方法为不可重写的方法。 对于一个private修饰的方法,因为它在当前类中可见,其子类无法访问该方法,所以子类无法重写该方法,如果子类中定义了一个与private方法相同名字、相同返回类型,相同的参数列表,也不是方法的重写,而是重新定义了一个新的方法。因此,即使使用final修饰的private的访问权限的方法,其子类依然可以定义一个与该方法具有相同的方法名、相同的参数列表、相同的返回类型。4、final类 Final修饰的类不可有子类,不可继承