成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

java基礎4:深入理解final關鍵字

本文主要介紹了final關鍵字的使用方法及原理

我們提供的服務有:網站制作、網站建設、微信公眾號開發(fā)、網站優(yōu)化、網站認證、榕江ssl等。為1000多家企事業(yè)單位解決了網站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術的榕江網站制作公司

具體代碼在我的GitHub中可以找到

https://github.com/h3pl/MyTech

文章首發(fā)于我的個人博客:

https://h3pl.github.io/2018/04/23/javase4

final關鍵字可以修飾類、方法和引用。

修飾類,該類不能被繼承。并且這個類的對象在堆中分配內存后地址不可變。

修飾方法,方法不能被子類重寫。

修飾引用,引用無法改變,對于基本類型,無法修改值,對于引用,雖然不能修改地址值,但是可以對指向對象的內部進行修改。

比如char[0] = 'a'。不改變對象內存地址,只改變了值。

具體看一下下面的栗子:

final class Fi { int a; final int b = 0; Integer s;

}
class Si{
    //一般情況下final修飾的變量一定要被初始化。
    //只有下面這種情況例外,要求該變量必須在構造方法中被初始化。
    //并且不能有空參數(shù)的構造方法。
    //這樣就可以讓每個實例都有一個不同的變量,并且這個變量在每個實例中只會被初始化一次
    //于是這個變量在單個實例里就是常量了。
    final int s ;
    Si(int s) {
        this.s = s;
    }
}
class Bi {
    final int a = 1;
    final void go() {
        //final修飾方法無法被繼承
    }
}
class Ci extends Bi {
    final int a = 1;
//        void go() {
//            //final修飾方法無法被繼承
//        }
}
final char[]a = {'a'};
final int[]b = {1};

final修飾類

@Test
public void final修飾類() {
    //引用沒有被final修飾,所以是可變的。
    //final只修飾了Fi類型,即Fi實例化的對象在堆中內存地址是不可變的。
    //雖然內存地址不可變,但是可以對內部的數(shù)據(jù)做改變。
    Fi f = new Fi();
    f.a = 1;
    System.out.println(f);
    f.a = 2;
    System.out.println(f);
    //改變實例中的值并不改變內存地址。
    Fi ff = f;
    //讓引用指向新的Fi對象,原來的f對象由新的引用ff持有。
    //引用的指向改變也不會改變原來對象的地址
    f = new Fi();
    System.out.println(f);
    System.out.println(ff);
}

final修飾方法

@Test
public void final修飾方法() {
    Bi bi = new Bi();
    bi.go();//該方法無法被子類Ci重寫
}

final修飾基本數(shù)據(jù)類型變量和引用

@Test
public void final修飾基本類型變量和引用() {
    final int a = 1;
    final int[] b = {1};
    final int[] c = {1};
//  b = c;報錯
    b[0] = 1;
    final String aa = "a";
    final Fi f = new Fi();
    //aa = "b";報錯
    // f = null;//報錯
    f.a = 1;
}

關于字符串的內容可以在上一節(jié)查看:

https://blog.csdn.net/a724888/article/details/80042298

關于抽象類和接口的內容可以在下一節(jié)查看:

https://blog.csdn.net/a724888/article/details/80061047

更多內容請關注微信公眾號【Java技術江湖】

這是一位阿里 Java 工程師的技術小站,作者黃小斜,專注 Java 相關技術:SSM、SpringBoot、MySQL、分布式、中間件、集群、Linux、網絡、多線程,偶爾講點Docker、ELK,同時也分享技術干貨和學習經驗,致力于Java全棧開發(fā)?。P注公眾號后回復”資料“即可領取 3T 免費技術學習資源以及我我原創(chuàng)的程序員校招指南、Java學習指南等資源)

**

java基礎4:深入理解final關鍵字cdn.xitu.io/2019/4/6/169f1735fd0d1d16?w=900&h=500&f=jpeg&s=109856">

標題名稱:java基礎4:深入理解final關鍵字
網頁URL:http://jinyejixie.com/article40/ggiceo.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供服務器托管、品牌網站建設、用戶體驗、商城網站、小程序開發(fā)、搜索引擎優(yōu)化

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

營銷型網站建設
吉水县| 金堂县| 灌南县| 乌什县| 大化| 上林县| 宜宾县| 松阳县| 涞源县| 铜梁县| 瑞安市| 峨眉山市| 淮滨县| 方正县| 师宗县| 永济市| 霍邱县| 锦屏县| 高雄市| 龙江县| 桂阳县| 华宁县| 民勤县| 灵台县| 清水县| 平塘县| 云安县| 博兴县| 宜阳县| 镇江市| 乌拉特前旗| 耒阳市| 逊克县| 健康| 岗巴县| 靖边县| 襄城县| 白城市| 南木林县| 龙里县| 福鼎市|