欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java面向對象之final關鍵字詳細解讀

 更新時間:2024年01月12日 09:30:01   作者:咕咕貓_  
這篇文章主要介紹了Java面向對象之final關鍵字詳細解讀,final修飾的屬性又叫常量,一般用 XX_XX_XX來命名,final修飾的屬性在定義時必須賦初始值,并且以后不能再修改,需要的朋友可以參考下

一、基本介紹

final可以修飾類、屬性、方法

有以下需求可使用final:

①當不希望類被繼承的時候,可以用final修飾

②當不希望父類的某個方法被子類重寫時,可以用final修飾

③當不希望類的某個屬性的值被修改時,可以使用final修飾

④當不希望某個局部變量屬性被修改時,可以使用final修飾

二、final使用注意事項和細節(jié)

1.final修飾的屬性又叫常量,一般用 XX_XX_XX來命名

2.final修飾的屬性在定義時必須賦初始值,并且以后不能再修改,賦值可以在以下位置之一:

①在定義時直接賦值

②在構造器中

③在代碼塊中

3.如果final修飾的屬性是靜態(tài)的,則初始化的位置只能是:①在定義時直接賦值 ②在靜態(tài)代碼塊中,不能在構造器中賦值

4.final類不能繼承,但是可以實例化對象

5.如果類不是final類,但是含有final方法,則該方法不能被重寫,但是可以被繼承

6.一般來說,如果一個類已經是final類了,就沒有必要再將方法修飾成final方法

7.final 和 static 往往搭配使用,效率更高,搭配使用不會導致類加載,底層編譯器做了優(yōu)化處理

8.包裝類(Integer,Double,F(xiàn)loat,Boolean等都是final),String也是final

示例

public class FinalDetail01 {
    public static void main(String[] args) {
        CC cc = new CC();
        new EE().cal();
    }
}
class AA{
    /*
    1. 在定義時直接賦值
    2. 在構造器中
    3. 在代碼塊中
     */
    public final double TAX_RATE1 = 0.08; //在定義時直接賦值
    public final double TAX_RATE2;
    public final double TAX_RATE3;
    public AA() { //在構造器中賦值
        TAX_RATE2 = 1.1;
    }
    { //在代碼塊中賦值
        TAX_RATE3 = 8.8;
    }
}
class BB {
    /*
    如果final修飾的屬性是靜態(tài)的,則初始化的位置只能是
    1.在定義時     2.在靜態(tài)代碼塊中   不能再構造器中賦值
     */
    public static final double TAX_RATE1 = 99.9;
    public static final double TAX_RATE2;
    static {
        TAX_RATE2 = 88.8;
    }
}
//final類不能繼承,但是可以實例化對象
final class CC { }
//如果類不是final類,但是含有final類方法,則該方法不能重寫,但是可以被繼承
//即仍然遵守繼承機制
class DD {
    public final void cal(){
        System.out.println("cal() 方法...");
    }
}
class EE extends DD{
}
public class FinalDetail02 {
    public static void main(String[] args) {
        System.out.println(BBB.num);
        //包裝類,String,是final類,不能被繼承
        //Double
    }
}
final class AAA {
    //一般來說,如果一個類已經是final類了,就沒必要再將方法修飾成final方法
    //public final static void cry(){ }
}
//final 和 static 往往搭配使用,效率更高
class BBB{
    public final static int num = 1000;
    static {
        System.out.println("BBB靜態(tài)代碼塊被執(zhí)行");
    }
}

到此這篇關于Java面向對象之final關鍵字詳細解讀的文章就介紹到這了,更多相關Java的final關鍵字內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • java.net.http.HttpClient使用示例解析

    java.net.http.HttpClient使用示例解析

    這篇文章主要為大家介紹了java.net.http.HttpClient使用示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08
  • Java字符串處理全解析(String、StringBuilder與StringBuffer)

    Java字符串處理全解析(String、StringBuilder與StringBuffer)

    這篇文章主要介紹了Java字符串處理全解析(String、StringBuilder與StringBuffer),本文通過實例代碼給大家介紹的非常詳細,感興趣的朋友一起看看吧
    2025-04-04
  • 一文帶你學會Java中ScheduledThreadPoolExecutor使用

    一文帶你學會Java中ScheduledThreadPoolExecutor使用

    ScheduledThreadPoolExecutor是Java并發(fā)包中的一個類,同時也是?ThreadPoolExecutor的一個子類,本文主要為大家介紹一下ScheduledThreadPoolExecutor使用,需要的可以參考下
    2024-12-12
  • Spring Boot 整合mybatis 與 swagger2

    Spring Boot 整合mybatis 與 swagger2

    之前使用springMVC+spring+mybatis,總是被一些繁瑣的xml配置,還經常出錯,下面把以前的一些ssm項目改成了spring boot + mybatis,相對于來說優(yōu)點太明顯了,具體內容詳情大家通過本文學習吧
    2017-08-08
  • response.sendRedirect()實現(xiàn)重定向(頁面跳轉)

    response.sendRedirect()實現(xiàn)重定向(頁面跳轉)

    在Java web開發(fā)中,使用response.sendRedirect()可實現(xiàn)重定向功能。本文將介紹如何使用該方法進行頁面跳轉,以及該方法的使用場景和注意事項,感興趣的可以了解一下
    2023-04-04
  • SparkSQL快速入門教程

    SparkSQL快速入門教程

    Spark?SQL是Spark用于結構化數(shù)據(jù)(structured?data)處理的Spark模塊,今天通過本文給大家介紹SparkSQL快速入門教程,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2022-02-02
  • java中的?HashMap?的加載因子是0.75原理探討

    java中的?HashMap?的加載因子是0.75原理探討

    在Java中,HashMap是一種常用的數(shù)據(jù)結構,用于存儲鍵值對,它的設計目標是提供高效的插入、查找和刪除操作,在HashMap的實現(xiàn)中,加載因子(Load?Factor)是一個重要的概念,本文將探討為什么Java中的HashMap的加載因子被設置為0.75
    2023-10-10
  • Spring發(fā)送郵件如何內嵌圖片增加附件

    Spring發(fā)送郵件如何內嵌圖片增加附件

    這篇文章主要介紹了Spring發(fā)送郵件如何內嵌圖片增加附件,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-10-10
  • JDBC+GUI實現(xiàn)簡單學生管理系統(tǒng)

    JDBC+GUI實現(xiàn)簡單學生管理系統(tǒng)

    這篇文章主要為大家詳細介紹了JDBC+GUI實現(xiàn)簡單學生管理系統(tǒng),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • 如何使用Spring?integration在Springboot中集成Mqtt詳解

    如何使用Spring?integration在Springboot中集成Mqtt詳解

    MQTT是多個客戶端通過一個中央服務器傳遞信息的多對多協(xié)議,能高效地將信息分發(fā)給一個或多個訂閱者,下面這篇文章主要給大家介紹了關于如何使用Spring?integration在Springboot中集成Mqtt的相關資料,需要的朋友可以參考下
    2023-02-02

最新評論