java關鍵字——final

2021-01-11 nothing談JavaWeb

對於初學者來說,我們先看這個英文的中文意思,final最終的。final可以修飾類、變量、方法,下面我們分別做講解。

1.final修飾類

final類表示最終的類,言外之意就是不能有其他類繼承這個final類,所以在做開發時如果自己寫的類不能有繼承,那麼就用final修飾;

注意點:final類中的變量可以根據需要設為final,但是final類中的所有方法都會被隱式地指定為final方法

2.final變量

final變量表示最終的變量,言外之意就是這個變量為常量,所以定義為final的變量要大寫,還必須初始化值.

注意點:(1)final變量初始化值可以直接賦值或者通過構造函數進行初始化

(2)final變量為基本數據類型,則值不能改變;

final變量為引用數據類型,則地址值不能改變,地址中的內容可以改變

3.final方法

final方法表示最終的方法,言外之意就是這個方法不能被重寫。父類中的方法被final修飾,那么子類就不能重寫父類方法。

這裡肯定有同學要問了,父類中的say方法被final修飾,那么子類就不能重寫say方法了,為什麼這裡沒有報錯?這裡就請同學們仔細看了,父類say方法被final修飾的同時,還加了權限修飾符private,也就是父類的say方法不能被子類S繼承,子類S中的say方法是自己的方法,沒有重寫父類的方法。

將private改為public,子類就繼承了父類的say方法,子類就不能重寫父類的方法,寫了就會報錯。

final關鍵字小編就總結到這裡,由於小編水平有限,文中難免有一些不足,還請大家多提寶貴意見。

相關焦點

  • Java之final關鍵字詳解
    前言針對Java語言中的final關鍵字,想必都不陌生了。本來主要是來對final做關鍵字做一個總結。final關鍵字用法修飾類當用final去修飾一個類的時候,表示這個類不能被繼承。注意:a.被final修飾的類,final類中的成員變量可以根據自己的實際需要設計為fianl。b. final類中的成員方法都會被隱式的指定為final方法。說明:在自己設計一個類的時候,要想好這個類將來是否會被繼承,如果可以被繼承,則該類不能使用fianl修飾,在這裡呢,一般來說工具類我們往往都會設計成為一個fianl類。在JDK中,被設計為final類的有String、System等。
  • [博客更新]Java 中 final 關鍵詞的使用
    上一篇文章我們講了 java 中 static 關鍵字的使用,這裡再將一下 final 關鍵字的使用。final 在 java 中可以看做一個「終結者」,它可以定義類、定義方法和定義變量。哎呀,好像沒別的可說了,就這樣吧,這可能是我寫過的字數最少的一篇文章了 算了,最後加一個示例程序吧,當然是錯誤的程序,包含了以上三種使用方法的錯誤使用報錯信息:package com.example.finalDemo;/** * User: sunriseydy * 2018-4-25 22:04 */finalclassPerson{String name
  • 深入理解Java中的final關鍵字
    將變量、方法和類聲明為final代表了什麼?使用final的好處是什麼?最後也有一些使用final關鍵字的實。
  • Java之final關鍵字的簡單介紹下
    各位小夥伴大家好,在之前的文章中,小編有介紹過,final關鍵字修飾局部變量Java之final關鍵字的簡單介紹中,支持小編要介紹的是final關鍵字修飾成員變量Java之成員變量和局部變量的區別。final關鍵字修飾成員變量:對於成員變量來說,如果使用final關鍵字,那麼這個變量是不可變。1.由於成員變量具有默認值,所以用了final之後必須手動賦值,不會給默認值了。2.對於final修飾的成員變量,要麼使用直接賦值,要麼通過構造方法Java之構造方法與this關鍵字的簡單介紹賦值,二者選其一3.必須保證類當中所有重載的構造方法,都最終會對final的成員變量進行賦值。
  • Java之final關鍵字的簡單介紹中
    各位小夥伴,大家好,在之前的文章小編有介紹過關鍵字fina修飾類和成員方法Java之final關鍵字的簡單介紹上。這次,小編要介紹的是關鍵字final修飾局部變量。finalint num2=100;System.out.println(num2);//int num2=300;報錯//正確寫法,只要保證有唯一一次複製即可。int num3;num3=300;對於基本數據類型來說,不可變說的是變量中的數據不可改變。對於引用類型來說,不可變的變量是地址值不可以改變。
  • 一文解析Java常用關鍵字
    二、Java 51個關鍵字 記住1:兩個保留字:const和goto (保留字:現在沒用,以後用得上) 記住2:所有的關鍵字都是小寫,一旦有大寫的,一定不是關鍵字 三、關鍵字static static是java中的一個關鍵字
  • java中static, final, 內部類的具體運用
    public class Person {private String name;private int age;//靜態代碼塊static{System.out.println("靜態代碼塊執行了");}}final關鍵字:關鍵字final,final的意思為最終
  • Java 訪問權限控制:你真的了解 protected 關鍵字嗎?
    (o.hashCode());    }} 我們給自己的程序設置的包名是java.lang,事實上,java.lang是JDK使用的包名。這時,程序可以正常編譯,但當我們運行程序時會有包衝突警告並拋出 「java.lang.SecurityException: Prohibited package name: java.lang」,如下圖所示:
  • 「原創」Java並發編程系列06|你不知道的final
    本文轉載自【微信公眾號:java進階架構師,ID:java_jiagoushi】經微信公眾號授權轉載,如需轉載與原文作者聯繫final在Java中是一個保留的關鍵字,可以修飾變量、方法和類。那麼fianl在並發編程中有什麼作用呢?本文就在對final常見應用總結基礎上,講解final並發編程中的應用。
  • Java之throw關鍵字的簡單介紹
    各位小夥伴們大家好,在之前的文章中小編介紹了異常的產生過程Java之異常產生過程解析,這次小編要介紹的是throw關鍵字,這個關鍵字可以在指定的方法中拋出指定的異常。使用格式:throw new xxxException("異常產生的原因");使用這個關鍵字,大家要注意以下幾點:throw關鍵字必須寫在方法的內部。
  • Java之局部內部類的final問題
    各位小夥伴們大家好,在之前的文章中,小編有介紹過局部內部類Java之局部內部類的定義與使用,這次小編要補充一點,局部內部類的final問題。在局部內部類當中,如果希望訪問所在方法的局部變量,那麼這個局部變量必須是【有效final的】。
  • 【答疑解惑】java中static關鍵字的作用
    而非靜態變量是對象所擁有的,在創建對象的時候被初始化,存在多個副本,各個對象擁有的副本互不影響。static成員變量的初始化順序按照定義的順序進行初始化。static代碼塊static關鍵字還有一個比較關鍵的作用就是 用來形成靜態代碼塊以優化程序性能。static塊可以置於類中的任何地方,類中可以有多個static塊。
  • Java基礎面試題簡單總結
    如果你對字符串中的內容經常進行操作,特別是內容要修改時,那麼使用StringBuffer,如果最後需要String,那麼使用StringBuffer的toString()方法34、談談final, finally, finalize的區別答:final—修飾符(關鍵字)如果一個類被聲明為
  • Java|別被final、finally和finalize這三兄弟給騙了!
    在Java中有這三個假兄弟final、finally和finalize。你別說,他們三個看起來還真像,不把眼睛睜大點還真分辨不出來。難怪在Java面試時,面試官就喜歡拿來糊弄我們有的Java新人們!final:如果你不想讓自己寫的類被繼承,那麼就該final修飾符出場了。將final修飾符放到class關鍵字前,就表示定義的類不能被繼承,那麼定義的這個類我習慣叫太監類;為什麼叫太監類,你懂的哈。那有哪些類是太監類呀?String就是一個被final修飾的類,我們只能用,不能繼承。
  • 每日一爪哇,Java面試題3
    final 在 Java 中有什麼作用final作為Java中的關鍵字可以用於三個地方。用於修飾類、類屬性和類方法。特徵:凡是引用final關鍵字的地方皆不可修改!(1)修飾類:表示該類不能被繼承;使用final修飾類的目的簡單明確::表明這個類不能被繼承。當程序中有永遠不會被繼承的類時,可以使用final關鍵字修飾。被final修飾的類所有成員方法都將被隱式修飾為final方法。
  • Thinking In Java --- 復用類(筆記)
    5 final關鍵字可能使用到final的三種情況:數據、方法和類5.1 final數據許多程式語言都有某種方法,來向編譯器告知一塊數據是恆定不變的。有時數據的恆定不變是很有用的,比如:一個永不改變的編譯時常量。一個在運行時被初始化的值,而你不希望它被改變。
  • java——Scnner()類下面有幾種方法呢?
    一、Scnner類 Scnner類在java.util包中一個可以使用正則表達式來解析基本類型和字符串的簡單文本掃描器public final class Scanner //final修飾。extends Object implements Iterator Scanner 使用分隔符模式將其輸入分解為標記,默認情況下該分隔符模式與空白匹配。然後可以使用不同的 next 方法將得到的標記轉換為不同類型的值。
  • Java中有這玩意?
    本文轉載自【微信公眾號:java進階架構師,ID:java_jiagoushi】經微信公眾號授權轉載,如需轉載與原文作者聯繫一:簡潔二:方法引用三:Optional 可選值靜態方法名, 如 Integer::parseInt實例方法引用,通過實例對象::實例方法,如 str::substring構造方法引用,通過類名::new, 如 User::new二:方法引用public final
  • java集合【6】——— Iterable接口
    內部定義的方法 java集合最源頭的接口,實現這個接口的作用主要是集合對象可以通過迭代器去遍歷每一個元素。default Spliterator<T> spliterator() {    return Spliterators.spliteratorUnknownSize(iterator(), 0);}從上面可以看出,foreach迭代以及可分割迭代,都加了default關鍵字,這個是Java
  • 剖析Java 集合框架(七)-HashMap為什麼線程不安全
    : java.util.HashMap$Node cannot be cast to java.util.HashMap$TreeNode at java.util.HashMap$TreeNode.moveRootToFront(HashMap.java:1819) at java.util.HashMap$TreeNode.treeify(HashMap.java:1936)