成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

鴻蒙HarmonyOS開發(fā)Java并發(fā)-final關鍵字

開發(fā) 后端 OpenHarmony
final可以稀釋變量,方法和類,用于便是修飾的內(nèi)容一旦賦值之后不會再被改變,比如string類就是一個final類型的類。

一、final使用場景

final可以稀釋變量,方法和類,用于便是修飾的內(nèi)容一旦賦值之后不會再被改變,比如string類就是一個final類型的類。

二、final修飾變量

在Java中變量可以分為成員變量和局部變量。

成員變量

通常每個類中成員變量可以分為類變量(static修飾的變量)以及實例變量針對這兩種類型的變量賦初始值的時機是不同的。

類變量可以再聲明變量的時候直接賦初始值或者在靜態(tài)代碼塊中給類變量賦初始值;而實例變量可以在聲明變量的時候給實例變量賦初始值,在非靜態(tài)初始化塊中以及構造器中賦初始值。

類變量有兩個時機賦初始值,而實例變量可以有三個時機賦初始值。當final變量未初始化時系統(tǒng)不會進行隱式初始化,會出現(xiàn)報錯。


將這幾種情況歸納整理一下:

類變量:必須要在靜態(tài)初始化塊中指定初始值或者聲明該類變量時指定初始值,而且只能在這兩個地方之一警醒指定;

實例變量:必須要在非靜態(tài)初始化塊,聲明該實例變量或者在構造器中指定初始值,而且只能在這三個地方警醒指定。

局部變量

final局部變量有程序員進行顯示初始化,如果final局部變量已經(jīng)進行了初始化則后面就不能再次進行更改,如果final變量未進行初始化,可以進行賦值,當且僅有一次賦值,一旦賦值之后再次賦值就會出錯。

基本數(shù)據(jù)類型和引用數(shù)據(jù)類型

final修飾的基本數(shù)據(jù)類型和引用類型有區(qū)別嗎?

通過上面的例子我們已經(jīng)看出來,如果final修飾的是一個基本數(shù)據(jù)類型的數(shù)據(jù),一旦賦值后就不能再次更改,那么,如果final修飾的是引用數(shù)據(jù)類型?這個引用的對象能夠改變嗎?

  1. package passtra; 
  2.  
  3. public class FinalExample{ 
  4.  
  5. //在聲明final實例成員變量時進行賦值 
  6.  
  7. private final static Person person=new Person(25, 175); 
  8.  
  9. public static void main(String[] args) { 
  10.  
  11. //對final引用數(shù)據(jù)類型person進行更改 
  12.  
  13. person.age=22; 
  14.  
  15. System.err.println(person.toString()); 
  16.  
  17.  
  18. static class Person{ 
  19.  
  20. private int age; 
  21.  
  22. private int height; 
  23.  
  24. public Person(int age, int height) { 
  25.  
  26. super(); 
  27.  
  28. this.age = age; 
  29.  
  30. this.height = height; 
  31.  
  32.  
  33. @Override 
  34.  
  35. public String toString() { 
  36.  
  37. return "Person [age=" + age + ", height=" + height + "]"
  38.  
  39.  
  40.  

 當我們對final修飾的應用數(shù)據(jù)類型變量person的屬性改成22,是可以操作成功的。

通過代碼可以看出,當final修飾基本數(shù)據(jù)類型時,不能對基本數(shù)據(jù)類型變量重新賦值,因此基本數(shù)據(jù)類型不能被改變,而對于引用數(shù)據(jù)類型,它僅僅保存的是一個引用,final只保證引用類型所引用的地址不會發(fā)生改變,即一直引用這個對象,但這個對象屬性是可以改變的。

宏變量

利用final變量的不可更改性,在馬祖下面三個條件時,該變量就會成為一個宏變量,即一個常量。

使用final修飾符修飾,在定義該final變量時就指定了初始值,該初始值在編譯時就能夠唯一指定。

注意

當程序中其他地方使用該宏變量時,編譯器會直接替換該變量的值。

三、final修飾方法

重寫

當父類的方法被final修飾的時候,子類不能重寫父類的該方法。你如在object中getClass()方法就是說final修飾的,我們就不能重寫該方法,但是hasdhCode()不是被final修飾的,我們就可以重寫hashCode()方法。

重載

  1. package passtra; 
  2.  
  3. public class FinalExample{ 
  4.  
  5. public final void test(){ 
  6.  
  7.  
  8. //沒有報錯 
  9.  
  10. public final void test(int i){ 
  11.  
  12.  

 可以看出被final修飾的方法可以重載。

四、final修飾類

當一個類被final修飾時,表明該類不能被子類繼承。

子類往往可以重寫父類的方法和屬性,會帶來一定的安全隱患,因此當一個類不希望被繼承是就可以用final修飾。

五、final在JDK中有哪些應用

final經(jīng)常被用作不變類上,利用final的不可更改性。

不變類

不變類的意思是創(chuàng)建該類的實例后,該實例的實例變量時不可改變的。滿足以下條件可以成為不變類:

  • 使用private和final修飾該類的成員變量;
  • 提供帶參數(shù)的構造器用于初始化類的成員變量;
  • 僅為該類的成員變量提供getter方法,不提供setter方法,因為普通方法無法修改final修飾的成員變量;
  • 如果有必要就重寫object的hashCode和equals方法應該保證用equals判斷相同的兩個對象其HashCode值也是相等的。

JDK中提供的八個包裝類和String類都是不可變的,可以看看string的實現(xiàn)

private final char value[];

可以看出string的value就是final修飾的,上述其他幾條性質(zhì)也是吻合的。

想了解更多內(nèi)容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術社區(qū)

https://harmonyos.51cto.com/#zz

 【編輯推薦】

 

責任編輯:jianghua 來源: 鴻蒙社區(qū)
相關推薦

2020-08-10 08:00:13

JavaFinal關鍵字

2021-03-10 15:59:39

JavaSynchronize并發(fā)編程

2025-06-13 08:00:00

Java并發(fā)編程volatile

2009-12-08 18:02:06

PHP final關鍵

2012-03-13 14:41:41

JavaJVM

2019-08-28 16:38:49

finalJava編程語言

2024-01-15 10:41:31

C++關鍵字開發(fā)

2012-03-01 12:50:03

Java

2023-06-26 08:02:34

JSR重排序volatile

2025-01-09 10:30:40

2023-11-28 21:50:39

finalstaticvolatile

2016-09-19 21:53:30

Java并發(fā)編程解析volatile

2017-10-20 11:12:12

數(shù)據(jù)類型關鍵字對象

2021-01-07 11:10:47

關鍵字

2021-01-26 07:20:26

Final關鍵字類變量

2021-02-17 13:35:17

finalgetJava

2012-06-02 00:53:39

Javafinally

2009-06-29 12:58:47

This關鍵字java

2009-08-21 14:58:56

C# this關鍵字

2013-01-30 10:12:14

Pythonyield
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 四虎影院在线观看免费视频 | 五月激情婷婷网 | 国产精品入口麻豆www | 亚洲一区日韩 | 国产精品精品久久久 | 久一久| 国产日韩欧美精品一区二区三区 | 亚洲男人天堂网 | 午夜精品久久久久久久久久久久 | 国产精品久久久久久久7777 | 精品成人在线 | 亚洲欧美在线视频 | 欧美一区二区三区在线免费观看 | 成人国产a | 99久久夜色精品国产亚洲96 | 国产精品久久久久一区二区三区 | 亚洲啊v在线 | 一区二区三区视频在线观看 | 91n成人 | 成人在线视频网址 | 欧美一区日韩一区 | 一区二区三区精品视频 | 婷婷丁香在线视频 | 久久香焦| 欧洲亚洲视频 | av大片| 99久久精品国产毛片 | 久久99深爱久久99精品 | 日日夜夜操天天干 | 欧美精品一区二区三区一线天视频 | 97精品超碰一区二区三区 | 超碰在线免费av | 国产一区 | 国产精品视频在线观看 | 久久伊人精品一区二区三区 | 中文字幕在线看人 | 日韩国产在线 | 成人国产精品免费观看 | 2一3sex性hd | 国产三级精品三级在线观看四季网 | 中文成人无字幕乱码精品 |