最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解Java中的final關(guān)鍵字

 更新時(shí)間:2022年10月14日 10:29:51   作者:共飲一杯無(wú)  
子類可以在父類的基礎(chǔ)上改寫父類內(nèi)容,為了避免這種隨意改寫的情況,Java提供了final 關(guān)鍵字,用于修飾不可改變內(nèi)容。本文就來(lái)詳細(xì)說(shuō)說(shuō)final關(guān)鍵字的使用,需要的可以參考一下

概述

子類可以在父類的基礎(chǔ)上改寫父類內(nèi)容,比如,方法重寫。那么我們能不能隨意的繼承API中提供的類,改寫其內(nèi)容呢?顯然這是不合適的。為了避免這種隨意改寫的情況,Java提供了final 關(guān)鍵字,用于修飾不可改變內(nèi)容。 final: 不可改變??梢杂糜谛揎楊?、方法和變量。

  • 類:被修飾的類,不能被繼承。
  • 方法:被修飾的方法,不能被重寫。
  • 變量:被修飾的變量,不能被重新賦值。

使用方式

修飾類

格式如下:

final class 類名 { }

查詢API發(fā)現(xiàn)像 public final class String 、public final class Math 、public final class Scanner 等,很多我們學(xué)習(xí)過(guò)的類,都是被final修飾的,目的就是供我們使用,而不讓我們所以改變其內(nèi)容。

注意: 如果一個(gè)類被final修飾那么這個(gè)類不能有任何的子類。 一個(gè)類如果是final的,那么其中所有的成員方法都無(wú)法進(jìn)行覆蓋重寫(因?yàn)闆]子類。)

修飾方法

格式如下:

修飾符 final 返回值類型 方法名(參數(shù)列表){
    //方法體
}

重寫被 final 修飾的方法,編譯時(shí)就會(huì)報(bào)錯(cuò)。

對(duì)于類、方法來(lái)說(shuō),abstract關(guān)鍵字和final關(guān)鍵字不能同時(shí)使用,因?yàn)槊?。有抽象方法的abstract類被繼承時(shí),其中的方法必須被子類Override,而final不能被Override。

修飾變量

局部變量—基本類型

基本類型的局部變量,被final修飾后,只能賦值一次,不能再更改。代碼如下:

public class FinalDemo1 {
    public static void main(String[] args) {
        // 聲明變量,使用final修飾
        final int a;
        // 第一次賦值
        a = 10;
        // 第二次賦值
        a = 20; // 報(bào)錯(cuò),不可重新賦值
        // 聲明變量,直接賦值,使用final修飾
        final int b = 10;
        // 第二次賦值
        b = 20; // 報(bào)錯(cuò),不可重新賦值
    }
}

思考,如下兩種寫法,哪種可以通過(guò)編譯? 寫法1:

final int c = 0;
for (int i = 0; i < 10; i++) {
    c = i;
    System.out.println(c);
}

寫法2:

for (int i = 0; i < 10; i++) {
    final int c = i;
    System.out.println(c);
}

根據(jù) final 的定義,寫法1報(bào)錯(cuò)!寫法2,為什么通過(guò)編譯呢?因?yàn)槊看窝h(huán),都是一次新的變量c。這也是大家需要注意的地方。

局部變量—引用類型

引用類型的局部變量,被final修飾后,只能指向一個(gè)對(duì)象,地址不能再更改。但是不影響對(duì)象內(nèi)部的成員變量值的修改,代碼如下:

成員變量

成員變量涉及到初始化的問(wèn)題,初始化方式有兩種,只能二選一: 顯式初始化:

public class User {
    final String USERNAME = "張三";
    private int age;
}

構(gòu)造方法初始化:

public class User {
    final String USERNAME ;
    private int age;
    public User(String username, int age) {
        this.USERNAME = username;
        this.age = age;
    }
}

被final修飾的常量名稱,一般都有書寫規(guī)范,所有字母都大寫。

到此這篇關(guān)于詳解Java中的final關(guān)鍵字的文章就介紹到這了,更多相關(guān)Java final關(guān)鍵字內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

红原县| 湖南省| 若羌县| 开鲁县| 宝鸡市| 新乡县| 呼和浩特市| 太原市| 鹿邑县| 西峡县| 嫩江县| 五原县| 衡阳市| 中方县| 高台县| 阳朔县| 博野县| 松原市| 德安县| 额尔古纳市| 佛坪县| 盐山县| 承德县| 峨山| 连州市| 四会市| 桐梓县| 镇雄县| 仁怀市| 安阳县| 大冶市| 平江县| 太康县| 阜平县| 南漳县| 开封县| 柯坪县| 南充市| 榆中县| 三门县| 会理县|