final关键字如何正确的在Java项目中使用-创新互联

这期内容当中小编将会给大家带来有关final关键字如何正确的在Java项目中使用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

创新互联建站专注于岫岩企业网站建设,响应式网站设计,商城系统网站开发。岫岩网站建设公司,为岫岩等地区提供建站服务。全流程按需制作网站,专业设计,全程项目跟踪,创新互联建站专业和态度为您提供的服务

前言

在java中可以将实例域定义为final。在构建对象是必须初始化这样的值。必须确保在每个构造器执行之后,这个域的值被设置,并且在后面的操作中不再对其修改。使用final声明变量之后,这个值就不能修改,一般final类型的变量都被声明为静态变量,而且是公有类型的,它在内存中被放在一个特有的公共区域。

也就是说,在Java语法中规定,final修饰的成员变量必须有程序员显式地指定初始值。

定义格式为: public  static  final  double pi = 3.1415926;

final修饰符大多应用于基本类型域,或不可变类的域(如果类中的每个方法都不会改变其对象,这种类成为不可变类。比如说Java中的String类就是一个不可变类。)

如果定义了两个相同的变量,都是final类型的,这两个相同的变量名有着不同的值,其实在内存中是开辟了两个内存空间,之前定义的变量的值会被后来定义的变量的值覆盖掉。原理是变量名指向后来定义的变量值的内存空间,之前定义的变量值会被Java虚拟机根据某种特定的算法在特定的时间处理掉。

在下面的代码中详细的介绍了final类型的变量如何进行定义和初始化:

public class FinalVariableText {
 //定义成员变量是指定默认值,合法
 final int a = 6;
 //下面变量将在构造器或初始化块中分配初始值
 final String str;
 final int c ;
 final static double d;
 //既没有指定默认值,也没有在初始化块、构造器中指定初始值
 //下面定义的ch实例变量是不合法的
 //final char ch;
 
 {
 //在初始化块中只懂初始值,合法
 str ="hello" ;
 //定义a实例变量已经有初始值了,不能为a重新赋值。下面的语句是不正确的
 //a = 9;
 }
 
 //静态初始化块
 static {
 // d是静态成员变量,必须在静态初始化块中为其指定初始值
 d = 5.6;
 
 }
 //构造器,可对 没有设置初始值的成员变量设置初始值
 //构造器必须与类名相同,这一点注意!
 public FinalVariableText(){
 //如果在初始化块中对str赋初值,在构造器中在为str重新赋值,是不合法的,程序会抛出错误。
 c = 5;
 }
 
 public void changeFinal() {
 //普通方法不能为final修饰的成员变量赋值
 //d = 1.3;
 //也不能在普通方法中为没有设置初始值的final类型的变量赋初值
 //ch = 'ch';
 
 }
 
 public static void main(String[] args) {
  
 FinalVariableText ff = new FinalVariableText();
 System.out.println(ff.a);
 System.out.println(ff.c);
 System.out.println(ff.str);
 System.out.println(ff.d); 
 }

文章名称:final关键字如何正确的在Java项目中使用-创新互联
网站地址:http://hbruida.cn/article/dhidcs.html