<java>final关键字

来源:互联网 发布:潮州日报 淘宝村 编辑:程序博客网 时间:2024/05/16 01:23

1、final变量

final关键字可以用于变量声明,一旦改变两杯设定,就不可以在改变该变量的只。通常,由final定义的变量为常量。

例如:final double PI=3.14

当程序用到PI这个常量时,他的值就是3.14,如果在程序中再次对定义为final的变量赋值,编译器将不会接受。

final关键字定义的变量必须在声明是对其进行赋值操作。final除了可以修饰基本数据类型的常量,还可以修饰对象引用。由于数组也可以被看做一个对象来引用,所以final可以修饰数组。一旦一个对象引用被修饰为final后,他只能恒定指向一个对象,无法将其改变一直想另一个对象。一个既是static又是final的字段只占据一段不能改变的存储空间。

可以对指定为final的引用中的成员变量赋值,但是不能将定义为final的引用指向其他引用。不能改变定义为final的常量值,不能对定义为final的数组赋值。。。。。

一个被定义为final的对象引用智能只想唯一一个对象,不可以将它栽植向其他对象,但是一个对象本身的质却是可以改变的,那么为了使一个常量真正做到不可更改,可以将常量声明为static。

但是定义为final的敞亮不是恒定不变的,将随机数赋予定义为final的常量,可以做到每次运行程序时改变final变量的值。但是若是为static

final形式,在内存中为这个变量开辟了一个恒定不变的区域,当再次实例化一个对象时,仍然指向这块区域,所以永远保持不变,final 是可以在重新实例化对象时被改变,但是static final是在装载时被初始化,而不是每次创建新对象是被初始化。


2、final方法


定义为final的方法不可以被重写。讲方法定义为final类型可以防止自雷修改该类的定义与实现方式,同时定义为final的方法的知行效率要高于非final方法。如果父类的某个方法被设置为private修饰符时,子类将无法访问该方法,自然无法覆盖该方法,所以定义为private的方法饮食被指定为final类型。


3、final类

定义为final的类不能被继承。如果希望一个类不允许任何类继承,并且不允许其他人对这个类进行任何改动,可以将这个类设置成final形式。


原创粉丝点击