[博客更新]Java 中 final 關鍵詞的使用

2021-01-11 日出一點一的博客

上一篇文章我們講了 java 中 static 關鍵字的使用,這裡再將一下 final 關鍵字的使用。final 在 java 中可以看做一個「終結者」,它可以定義類、定義方法和定義變量。

當定義類的時候,該類不能被繼承

當定義方法的時候,該方法不能被子類覆蓋(Override)

當定義變量的時候,該變量只能在定義的時候初始化,後期不能做改變,即變為一個常量。

哎呀,好像沒別的可說了,就這樣吧,這可能是我寫過的字數最少的一篇文章了

算了,最後加一個示例程序吧,當然是錯誤的程序,包含了以上三種使用方法的錯誤使用報錯信息:

package com.example.finalDemo;/** * User: sunriseydy * 2018-4-25 22:04 */finalclassPerson{String name ="張三";finalString city ="北京";publicPerson(){ city ="上海";/*city 報錯:Cannot assign a value to final variable "city"*/}finalpublicvoid print (){System.out.println("我叫"+name+" 來自"+city);}}class student extendsPerson{/*Person 報錯:Cannot inherit from final 'com.example.finalDemo.Person'*/int id =1;publicvoid print (){/*上一行報錯:'print()' cannot override 'print()' in 'com.example.finalDemo.Person'; overridden method is final */System.out.println("我叫"+name+" 來自"+city+" 學號為"+id);}}publicclassFinalClassDemo{publicstaticvoid main(String[] args){}}

就這樣吧

博客文章地址:https://blog.sunriseydy.top/technology/code/java/java-final/

相關焦點

  • java中static, final, 內部類的具體運用
    class Yy {}final class Fue xtendsYy{} //可以繼承Yy 類class Zi extends Fu{}final修飾的方法不可以被覆蓋,但父類中沒有被final修飾方法,子類覆蓋後可以加final。
  • Java之final關鍵字詳解
    前言針對Java語言中的final關鍵字,想必都不陌生了。本來主要是來對final做關鍵字做一個總結。final關鍵字用法修飾類當用final去修飾一個類的時候,表示這個類不能被繼承。注意:a.被final修飾的類,final類中的成員變量可以根據自己的實際需要設計為fianl。b. final類中的成員方法都會被隱式的指定為final方法。說明:在自己設計一個類的時候,要想好這個類將來是否會被繼承,如果可以被繼承,則該類不能使用fianl修飾,在這裡呢,一般來說工具類我們往往都會設計成為一個fianl類。在JDK中,被設計為final類的有String、System等。
  • 深入理解Java中的final關鍵字
    final經常和static一起使用來聲明常量。1、final方法在編譯階段綁定,稱為靜態綁定(static binding),編譯時常量,永遠不可改變。2、運行期初始化,我們希望它不會改變。3、接口中聲明的所有變量本身是final的。4、對於集合對象聲明為final指的是引用不能被更改,但是你可以向其中增加,刪除或者改變內容。
  • 「原創」Java並發編程系列06|你不知道的final
    本文轉載自【微信公眾號:java進階架構師,ID:java_jiagoushi】經微信公眾號授權轉載,如需轉載與原文作者聯繫final在Java中是一個保留的關鍵字,可以修飾變量、方法和類。那麼fianl在並發編程中有什麼作用呢?本文就在對final常見應用總結基礎上,講解final並發編程中的應用。
  • 「java」使用jwt進行認證授權
    傳統的web應用使用session來維護用戶與伺服器之間的狀態,用戶提交用戶名密碼到伺服器,伺服器生成會話id,並將驗證通過的用戶信息存到session中(內存or資料庫),會話id會寫出到cookie。
  • Java之final關鍵字的簡單介紹中
    各位小夥伴,大家好,在之前的文章小編有介紹過關鍵字fina修飾類和成員方法Java之final關鍵字的簡單介紹上。這次,小編要介紹的是關鍵字final修飾局部變量。代碼如下:public class Demo01Final {public static void main(String[] args) {int num1=11;System.out.println(num1);num1=12;//變量可以改變Java之成員變量和局部變量的區別System.out.println(num1);//一旦使用final來修飾變量,這個變量就不能進行改變
  • java關鍵字——final
    對於初學者來說,我們先看這個英文的中文意思,final最終的。final可以修飾類、變量、方法,下面我們分別做講解。1.final修飾類final類表示最終的類,言外之意就是不能有其他類繼承這個final類,所以在做開發時如果自己寫的類不能有繼承,那麼就用final修飾;注意點:final類中的變量可以根據需要設為final,但是final類中的所有方法都會被隱式地指定為final方法2.final變量final變量表示最終的變量,言外之意就是這個變量為常量
  • Java基礎面試題簡單總結
    中的保留字,現在沒有在java中使用11、數組有沒有length()這個方法?如果你對字符串中的內容經常進行操作,特別是內容要修改時,那麼使用StringBuffer,如果最後需要String,那麼使用StringBuffer的toString()方法34、談談final, finally, finalize的區別答:final—修飾符(關鍵字)如果一個類被聲明為
  • Java中有這玩意?
    本文轉載自【微信公眾號:java進階架構師,ID:java_jiagoushi】經微信公眾號授權轉載,如需轉載與原文作者聯繫一:簡潔二:方法引用三:Optional 可選值Optional,在Swift語言中也有這樣類似的語法,在Swift中將可選值作為一種數據類型,地位和基本類型平齊平做,地位非常高。
  • Java之final關鍵字的簡單介紹下
    各位小夥伴大家好,在之前的文章中,小編有介紹過,final關鍵字修飾局部變量Java之final關鍵字的簡單介紹中,支持小編要介紹的是final關鍵字修飾成員變量Java之成員變量和局部變量的區別。final關鍵字修飾成員變量:對於成員變量來說,如果使用final關鍵字,那麼這個變量是不可變。1.由於成員變量具有默認值,所以用了final之後必須手動賦值,不會給默認值了。2.對於final修飾的成員變量,要麼使用直接賦值,要麼通過構造方法Java之構造方法與this關鍵字的簡單介紹賦值,二者選其一3.必須保證類當中所有重載的構造方法,都最終會對final的成員變量進行賦值。
  • Java 訪問權限控制:你真的了解 protected 關鍵字嗎?
    Package 關於包的使用,只需注意一點:在一個項目中,不可以有相同的兩個包名,也就是說,包名不能和項目中其他的包名重複,這裡不但包括自定義包名也包括項目所引用的類庫的包名。(o.hashCode());    }} 我們給自己的程序設置的包名是java.lang,事實上,java.lang是JDK使用的包名。
  • Java 中的繼承和多態(深入版)
    在虛擬機中多態如何表現前文我們知道,java文件在經過javac編譯後,生成class文件之後在JVM中再進行編譯後生成對應平臺的機器碼。而JVM的編譯過程中體現多態的過程,在於選擇出正確的方法執行,這一過程稱為方法調用。方法調用的唯一任務是確定被調用方法的版本,暫時還不涉及方法內部的具體運行過程。
  • 我要告訴你:java接口中可以定義private私有方法
    在傳統的Java編程中,被廣為人知的一個知識點是:java Interface接口中不能定義private私有方法。只允許我們定義public訪問權限的方法、抽象方法或靜態方法。但是從Java 9 開始,Interface 接口中允許定義私有方法和私有靜態方法。下面我們就來為大家介紹其語法規則,和為什麼要有這樣的設計。
  • Java之局部內部類的final問題
    各位小夥伴們大家好,在之前的文章中,小編有介紹過局部內部類Java之局部內部類的定義與使用,這次小編要補充一點,局部內部類的final問題。在局部內部類當中,如果希望訪問所在方法的局部變量,那麼這個局部變量必須是【有效final的】。
  • java——Scnner()類下面有幾種方法呢?
    一、Scnner類 Scnner類在java.util包中一個可以使用正則表達式來解析基本類型和字符串的簡單文本掃描器public final class Scanner //final修飾。extends Object implements Iterator Scanner 使用分隔符模式將其輸入分解為標記,默認情況下該分隔符模式與空白匹配。然後可以使用不同的 next 方法將得到的標記轉換為不同類型的值。
  • 探索Java中的網絡編程技術
    埠號是用來標識進程的邏輯地址,不同進行的標識,有效的埠為0到65535,其中0到1024系統使用或保留的埠.傳輸協議即是通訊的規則,常見的協議為TCP, UDP.java.net類 InetAddressjava.lang.Object-> java.net.InetAddress所有已實現的接口有:直接已知子類:Inet4Address, Inet6Addresspublic class InetAddress extends Object
  • 剖析Java 集合框架(七)-HashMap為什麼線程不安全
    序差不多兩周沒有更新了,感受到深深的罪惡,拖更可不是個好習慣,我一直覺得壞習慣一旦開始,就會有第二次,第三次....特別是打開公眾號後臺,看到新增了一個粉絲,巨開心,感謝觀眾姥爺支持。上周去重慶旅遊了4天,又冷,又累,沒事可以寫寫遊記,哈哈哈,又可以水文章。
  • Java|別被final、finally和finalize這三兄弟給騙了!
    在Java中有這三個假兄弟final、finally和finalize。你別說,他們三個看起來還真像,不把眼睛睜大點還真分辨不出來。難怪在Java面試時,面試官就喜歡拿來糊弄我們有的Java新人們!final:如果你不想讓自己寫的類被繼承,那麼就該final修飾符出場了。將final修飾符放到class關鍵字前,就表示定義的類不能被繼承,那麼定義的這個類我習慣叫太監類;為什麼叫太監類,你懂的哈。那有哪些類是太監類呀?String就是一個被final修飾的類,我們只能用,不能繼承。
  • Java中設置classpath、path、JAVA_HOME的作用?
    path:Windows系統執行命令時要搜尋的路徑在dos命令行中執行命令的時候,會先從當前路徑去找,如果找不到,就會到path路徑下去找比如我的jdk裝在D盤下,當我在C盤執行java -version的時候會出現找不到java命令的情況,設置path的目的就是當在
  • 一文解析Java常用關鍵字
    二、Java 51個關鍵字 記住1:兩個保留字:const和goto (保留字:現在沒用,以後用得上) 記住2:所有的關鍵字都是小寫,一旦有大寫的,一定不是關鍵字 三、關鍵字static static是java中的一個關鍵字