更多内容请访问:与华为官方共建的鸿蒙技术社区https://harmonyos.51cto.com/#zz1.final使用场景finalcan稀释变量、方法、而classes是用来修改内容的,一旦赋值就不会被改变。例如,字符串类是最终类型类。2.final修饰的变量Java中的变量可以分为成员变量和局部变量。成员变量一般每个类中的成员变量可以分为类变量(静态修饰变量)和实例变量。给这两类变量赋初值的时机是不一样的。类变量可以在声明变量时直接赋初值也可以在静态代码块中给类变量赋初值;实例变量可以在声明变量的时候给实例变量赋初值,在非静态初始化块和构造函数中赋初值。类变量有两次机会赋初值,而实例变量可以有三次机会赋初值分配初始值。当final变量没有初始化时,系统不会进行隐式初始化,会出现错误。总结一下这些情况:类变量:初始值必须在静态初始化块中或声明类变量时指定,并且只能在这两个地方之一指定;实例变量:必须在非静态初始化块中声明实例变量或在构造函数中指定初始值,并且只能在这三个地方指定。局部变量final局部变量由程序员显式初始化。如果final局部变量已经初始化,则以后不能再更改。如果final变量还没有初始化,可以赋值。如果且只有一次赋值,一旦再次赋值,赋值就会失败。基本数据类型和引用数据类型基本数据类型和final修饰的引用类型有区别吗?通过上面的例子,我们已经看到,如果最终修改的数据是基本数据类型,一旦赋值,就不能再更改,那么,如果最终修改的是引用数据类型呢?可以更改引用的对象吗?packagepasstra;publicclassFinalExample{//声明final实例成员变量时赋值privatefinalstaticPersonperson=newPerson(25,175);publicstaticvoidmain(String[]args){//改变最终引用数据类型personperson.age=22;System.err。println(person.toString());}staticclassPerson{privateintage;privateinheight;publicPerson(intage,inheight){super();this.age=age;this.height=height;}@OverridepublicStringtoString(){返回“Person[age="+age+",height="+height+"]";}}}当我们将最终修改的应用程序数据类型变量person的属性改为22时,就可以运行成功了。从代码中可以看出,final修改基本数据类型时,基本数据类型的变量不能重新赋值,所以基本数据类型不能改变,而对于引用数据类型,只是保存了一个引用,而final只保证引用类型引用的地址不会改变,即这个对象一直被引用,但是这个对象的属性是可以改变的。宏变量利用了最终变量的不变性。在Matsu中满足以下三种情况下,该变量将成为宏变量,即常量。当使用final修饰符修饰时,在定义final变量时就指定了初始值,并且可以在编译时唯一指定初始值。注意:当宏变量在程序的其他地方使用时,编译器会直接替换变量的值。3.重写final修饰方法当父类的方法被final修饰时,子类不能重写父类的方法。如果说对象中的getClass()方法是final修饰的,我们不能重写这个方法,但是hasdhCode()不是final修饰的,我们可以重写hashCode()方法。重载包密码;publicclassFinalExample{publicfinalvoidtest(){}//不报错publicfinalvoidtest(inti){}}可见final修饰的方法是可以重载的。4.FinalModifiedClass当一个类被final修饰时,表明该类不能被子类继承。子类往往可以重写父类的方法和属性,这会带来一定的安全隐患。因此,当一个类不想被继承时,可以用final修饰。5、final在JDK中的应用有哪些Final常被用作不变类,利用了final的不变性。不变类不可变类是指类的实例创建后,实例的实例变量不能改变。满足以下条件的类可以成为不可变类:使用private和final修饰类的成员变量;提供一个带参数的构造函数来初始化类的成员变量;只为类的成员变量提供getter方法,不提供setter方法,因为普通方法不能修改final修饰的成员变量;必要时重写对象的hashCode和equals方法,保证equals判断的相同两个对象的HashCode值也相等。JDK中提供的八个包装类和String类都是不可变的。可以看看stringprivatefinalcharvalue[];的实现可以看出字符串的值是final修饰的,上面提到的其他属性也是一致的。更多信息请访问:与华为官网共建鸿蒙科技社区https://harmonyos.51cto.com/#zz【编辑推荐】2020年六大推荐服务器管理软件和工具2021-2025数字化九大技术趋势经济在20分钟内。建立一个Ansible实验室。说说通信界的“超级网红”SRv6。2020年已经这么糟糕了,2021年网络安全还会更糟吗?
