java~final關鍵字

final關鍵字

  • final基本介紹
  • final的使用細節

final基本介紹

  • final是最終的意思,可以修飾類,屬性,方法,局部變量
  • 什么時候會要使用到final呢?
    1.想要類不被繼承時
    2.不希望類的某個屬性的值被改變時
    3.不想父類的某個方法被子類重寫時
    4.不想某個局部變量被修改時

代碼演示:

public class Final01 {public static void main(String[] args) {E e = new E();//e.TAX_RATE = 0.9;TAX_RATE 被final修飾,值不能改變}
}
final class A{//1.不希望被繼承的時候用final修飾,這樣B就不能繼承A了}
//class B extends A{ }A被final修飾,不能被繼承class C{public final void tao(){//3.不想被子類重寫此方法,用final修飾此方法//加了final的NUM也可以被叫做局部常量,不能修改final double NUM = 0.9;//4.如果不想局部變量被修改,用final修飾//NUM = 1.00;NUM被final修飾,值不能被改變}
}
class D extends C {
//    @Override
//    public void tao() {//重寫C的方法
//        super.tao();
//    }
//    tao()被final修飾,不能被子類重寫
}class E{public final double TAX_RATE = 0.8;//2.不希望類的某個屬性被修改,用final修飾
}

final的使用細節

  • final修飾的屬性也可以叫常量,一般用XX_XX來命名
  • final修飾的屬性在被定義時必須要初始化并且不能修改,初始化可以寫在三個位置:
    1.定義屬性時
    2.在構造器中初始化
    3.在代碼塊中初始化
  • 如果final修飾的屬性是靜態的,那么只有兩個位置可以初始化
    1.定義屬性時
    2.在代碼塊中初始化

    不能在構造器中初始化,因為靜態屬性在類加載的時候就要被初始化,而構造器在實例化對象時才會被調用)
  • final類不能被繼承,但是可以實例化對象
  • 一個非final類含有final修飾的方法,這個方法雖然不能被子類重寫,但是可以被子類繼承并使用

代碼演示:

public class FinalDetail01 {public static void main(String[] args) {CC cc = new CC();//Final類雖然不能被繼承,但是可以實例化對象new EE().show();//父類沒有被Final修飾,但是父類方法被Final修飾,// 雖然該方法不能被子類重寫,但是可以被子類繼承System.out.println(GG.n1);}
}
//final屬性在定義時就必須賦值,并且之后不能在修改
//1.可以在定義屬性時賦值
//2.可以在構造器中賦值
//3.可以在代碼塊中賦值
class AA{public final double TAX = 0.05;//定義屬性時賦值public final double TAX2;public final double TAX3;public AA() {TAX2 = 0.09;}//構造器中賦值{TAX3 = 0.4;}//代碼塊中賦值
}//如果Final修飾的屬性是靜態的,那么初始化的位置只能有:
//1.定義時賦值
//2.靜態代碼塊中
class BB{public static final double TAX4 = 0.6;public static final double TAX5;public BB() {//TAX5 = 0.7;賦值失敗//因為是在加載靜態屬性,并不是在加載實例屬性,所以不能在構造器中賦值//靜態屬性在類加載的時候就要被初始化,而構造器在實例化對象時才會被調用}static{TAX5 = 0.8;}//靜態代碼塊中賦值成功
}final class CC{ }class DD{public final void show() {System.out.println("show()");}
}
class EE extends DD{ }final class FF{public final void hi(){}//其實這個類已經是Final類了,這個方法就沒有必要被修飾成Final方法了//因為這個方法不能被繼承,所以不能被重寫
}class GG{String s1 = "hello";//String是Final類,不能被繼承public static final int n1 = 10;//當static和Final搭配使用時,調用這個屬性,不會導致類被加載,所以下面靜態代碼塊中的語句不會被執行static{System.out.println("靜態代碼塊被調用...");}}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/94384.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/94384.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/94384.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Node.js(四)之數據庫與身份認證

數據庫與身份認證 目錄 數據庫與身份認證 十三、數據庫的基本概念 13.1 什么是數據庫 13.2 常見的數據庫及分類 13.3 傳統型數據庫的數據組織結構 1. Excel 的數據組織結構 2. 傳統型數據庫的數據組織結構 3. 實際開發中庫、表、行、字段的關系 十四、安裝并配置MySQ…

SpringBoot+SpringMVC常用注解

文章目錄發展歷程項目創建項目結構入門案例配置文件的兩種方式:只能使用一種創建項目二入門案例常用知識及注解Controller:類上面加,SpringMVC的注解GetMapping:方法上面加Spring框架的兩項核心功能Component:組件。控制反轉,加在業務類上面&…

標準GS相位恢復算法

標準GS相位恢復算法詳解與MATLAB實現 Gerchberg-Saxton (GS) 算法是一種經典的相位恢復方法,廣泛應用于光學成像、衍射成像和全息技術等領域。該算法通過迭代過程從未知相位的強度測量中恢復相位信息。 算法原理 GS算法的核心思想是利用傅里葉變換關系在空間域和頻率…

【Linux網絡編程基礎--socket地址API】

一、主機字節序和網絡字節序主機字節序(Host Byte Order):你當前電腦的內存字節順序(比如 x86 是小端)網絡字節序(Network Byte Order):統一規定為大端序(高位字節在高位…

Linux路徑MTU發現(Path MTU Discovery, PMTU)

Linux路徑MTU發現(Path MTU Discovery, PMTU)機制是TCP/IP協議棧中確保數據包高效傳輸的核心技術。其核心目標是動態探測源主機到目的主機路徑上的最小MTU(Maximum Transmission Unit),從而避免IP分片,提升…

【MySQL進階】------MySQL程序

MySQL程序簡介 MySQL安裝完成通常會包含如下程序: Linux系統程序?般在 /usr/bin?錄下,可以通過命令查看: windows系統?錄:你的安裝路徑\MySQL Server 8.0\bin,可以通過命令查看: 每個 MySQL 程序都有許…

Linux大頁內存導致服務內存不足

Linux大頁內存導致服務內存不足的解決方法 大頁內存(Huge Pages)是Linux內核提供的一種機制,用于減少TLB(轉換后備緩沖區)的壓力,提高內存訪問性能。然而,如果配置不當,大頁內存可能…

超寬帶測距+測角+無線通信一體化模組:智能門鎖、智能遙控器、AR頭戴、智能穿戴

超寬帶測距測角無線通信一體化模組:智能門鎖、智能遙控器、AR頭戴、智能穿戴UWB測距測角技術,因其高精度、低延遲、抗干擾能力,正廣泛應用于“人-物-設備”的空間感知場景,成為構建智能空間和精準互動的重要底層技術。代表廠商與產…

基于單片機空氣質量檢測/氣體檢測系統

傳送門 👉👉👉👉其他作品題目速選一覽表 👉👉👉👉其他作品題目功能速覽 概述 隨著環境污染問題日益嚴重,空氣質量監測成為社會關注的焦點。基于單片機的空氣質量檢…

網絡安全 | 從 0 到 1 了解 WAF:Web 應用防火墻到底是什么?

🤔 寫在前面 2020年 我參加公司的安全技能大賽,隊友在實操環節啟用了 WAF 防火墻,這是我第一次接觸到 Web 應用防火墻。作為一個 Web 開發老鳥,真是羞愧呀😂。 🔐 Web應用防火墻 WAF 全稱是 Web Applica…

服務器突然之間特別卡,什么原因?

原因總結:1.一般是本地網速的問題,服務器網速的問題,服務器CPU被占滿的問題今天發現另一個會導致特別卡的問題,是主存占滿也會導致卡頓。解釋如下:當服務器的主存(物理內存)被完全占滿時&#x…

AI應用標準詳解:A2A MCP AG-UI

"OpenAI接入MCP,Google推出A2A,微軟與OpenAI緊密綁定"標志著云計算競爭焦點已從"算力"和"模型參數"轉向?Agent標準協議控制權?。在AI快速演進的今天,我們不再僅關注單個AI的智能水平,而是探索多個…

Web安全學習步驟

以下是Web安全專項學習步驟,聚焦實戰能力培養,分為4個階段資源清單**,適合從入門到進階。重點培養漏洞挖掘能力與防御方案設計雙重視角:---階段1:Web技術筑基(1-2個月) | 領域 | 關鍵…

Android工程命令行打包并自動生成簽名Apk

1.進入工程目錄查看所有gradle任務 2.打包debug與release 打包前先生成jks簽名文件test.jks 在工程的build.gradle中添加簽名配置 signingConfigs {release {storeFile file("/home/dev/test.jks")storePassword "111111"keyAlias "key0"keyPas…

分布式微服務--Nacos作為配置中心(一)

1.Nacos配置遠程配置中心注意總結:本地配置文件必須使用 bootstrap.yml 或 bootstrap.properties遠程配置的加載優先于 application.yml,因此必須寫在 bootstrap 配置文件中。本地配置文件中 file-extension 的取值僅支持兩種:properties 或 …

Linux安裝MySQL及鏈接第三方工具詳細教程,帶圖帶錯誤分析

本教程所有代碼均為root用戶權限下操作,如果不是root用戶,在代碼前加上(sudo )即可 一、安裝MySQL服務 準備工作: 有時,系統無法解析 部分域名,導致無法獲取鏡像列表,從而無法安裝…

WPS2024 軟件下載及安裝教程!

軟件介紹 WPS Office是一套辦公軟件套裝,包含WPS文字、WPS表格、WPS演示三大功能模塊,可以滿足常用文字處理、表格編輯和演示制作等多種辦公需求,以其強大的功能和用戶友好的界面贏得了眾多用戶的青睞。 軟件:??????WPS Of…

ESD監控系統確保工廠生產設備的靜電安全

隨著電子工業的飛速發展,電子產品的精密程度不斷提高,對生產環境的要求也日益嚴格。在許多電子制造工廠中,安裝和維護有效的靜電防護措施已成為保障生產安全和產品品質的關鍵。ESD監控系統作為靜電管理的核心工具,為確保工廠設備和…

基于react的YAPI實戰指南

基于react的YAPI 示例新增項目擴展遇到的問題&#xff0c;更改頁面內容沒有生效可能遇到的問題新增項目擴展 支持設置項目權限【公開】 <RadioGroup><Radio value"private" className"radio"><Icon type"lock" />私有<br …

docker鏡像源配置教程,以及解決安裝好docker配置鏡像源后,出現報錯。Job for docker.service failed

Job for docker.service failed because start of the service was attempted too often. See "systemctl status docker.service" and "journalctl -xe" for details.解決后效果&#xff1a;1、進入/etc/docker目錄cd /etc/docker2、創建daemon.json文件并…