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

Java全面細(xì)致講解final的使用

 更新時(shí)間:2022年05月30日 09:38:20   作者:小老師ir  
關(guān)于final關(guān)鍵字,它也是我們一個(gè)經(jīng)常用的關(guān)鍵字,可以修飾在類上、或者修飾在變量、方法上,以此看來定義它的一些不可變性!像我們經(jīng)常使用的String類中,它便是final來修飾的類,并且它的字符數(shù)組也是被final所修飾的。但是一些final的一些細(xì)節(jié)你真的了解過嗎

一、理解

final:最終的

二、作用

final 可以用來修飾的結(jié)構(gòu):類、方法、變量

1. 修飾-類

final 用來修飾一個(gè)類,表示此類不能被其它類所繼承,提高安全性,提高程序的可讀性。

比如:String類、System類、StringBuffer類…

代碼演示:

final class A{
}
class B extends A{ //錯(cuò)誤,不能被繼承。
}

2. 修飾-方法

final 用來修飾方法:表明此方法不能被子類重寫。

比如:Object類中getClass();

代碼演示:

class A {
   public final void print() {
     System.out.println("A");
   } 
}
class B extends A {
    public void print() { 
    // 錯(cuò)誤,不能被重寫。
    } 
}

3. 修飾-變量

final 修飾的變量(成員變量或局部變量)稱為常量。名稱大寫,且只能被賦值一次。

static final 用來修飾屬性:全局常量。

代碼演示:

class A {
   private final String INFO = "嘻嘻"; //聲明常量
     public void print() {     
     //INFO = "哈哈";
     //The final field A.INFO cannot be assigned
     } 
}

3.1 修飾-成員變量(屬性)

final 標(biāo)記的成員變量必須在聲明(顯式初始化)時(shí)或在 每個(gè)構(gòu)造器中或代碼塊中顯式賦值,然后才能使用。

如:final double MY_PI = 3.14;

3.2 修飾-局部變量

使用 final 修飾局部變量時(shí),表明此形參是一個(gè)常量。當(dāng)我們調(diào)用此方法時(shí),給常量形參賦一個(gè)實(shí)參。一旦賦值以后,就只能在方法體內(nèi)使用此形參,且不能進(jìn)行重新賦值。

三、經(jīng)典題目

//題目一:
public class Test1 {    
        public int addOne(final int x) {
         //   return ++x;
         //Cannot assign a value to final variable 'x'
            return x + 1;
        }
}
//題目二:
public class Something {
    public static void main(String[] args) {
       Other o = new Other();
       new Something().addOne(o);
    }
    public void addOne(final Other o) {
       // o = new Other();
       o.i++;
     } 
}
class Other {
   public int i; 
}
//題目三:
class Root{
	static{
		System.out.println("Root的靜態(tài)初始化塊");
	}
	{
		System.out.println("Root的普通初始化塊");
	}
	public Root(){
		super();
		System.out.println("Root的無參數(shù)的構(gòu)造器");
	}
}
class Mid extends Root{
	static{
		System.out.println("Mid的靜態(tài)初始化塊");
	}
	{
		System.out.println("Mid的普通初始化塊");
	}
	public Mid(){
		super();
		System.out.println("Mid的無參數(shù)的構(gòu)造器");
	}
	public Mid(String msg){
		//通過this調(diào)用同一類中重載的構(gòu)造器
		this();
		System.out.println("Mid的帶參數(shù)構(gòu)造器,其參數(shù)值:"
			+ msg);
	}
}
class Leaf extends Mid{
	static{
		System.out.println("Leaf的靜態(tài)初始化塊");
	}
	{
		System.out.println("Leaf的普通初始化塊");
	}	
	public Leaf(){
		//通過super調(diào)用父類中有一個(gè)字符串參數(shù)的構(gòu)造器
		super("小老師ir");
		System.out.println("Leaf的構(gòu)造器");
	}
}
public class LeafTest{
	public static void main(String[] args){
		new Leaf(); 
		System.out.println();
		new Leaf();
	}
}
/*output:
Root的靜態(tài)初始化塊
Mid的靜態(tài)初始化塊
Leaf的靜態(tài)初始化塊
Root的普通初始化塊
Root的無參數(shù)的構(gòu)造器
Mid的普通初始化塊
Mid的無參數(shù)的構(gòu)造器
Mid的帶參數(shù)構(gòu)造器,其參數(shù)值:小老師ir
Leaf的普通初始化塊
Leaf的構(gòu)造器
Root的普通初始化塊
Root的無參數(shù)的構(gòu)造器
Mid的普通初始化塊
Mid的無參數(shù)的構(gòu)造器
Mid的帶參數(shù)構(gòu)造器,其參數(shù)值:小老師ir
Leaf的普通初始化塊
Leaf的構(gòu)造器
*/

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

相關(guān)文章

  • SpringBoot整合minio快速入門教程(代碼示例)

    SpringBoot整合minio快速入門教程(代碼示例)

    這篇文章主要介紹了SpringBoot整合minio快速入門實(shí)現(xiàn)文件上傳和下載的示例代碼,代碼簡單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-04-04
  • java中static關(guān)鍵字用法詳解

    java中static關(guān)鍵字用法詳解

    這篇文章主要為大家詳細(xì)介紹了java中static關(guān)鍵字的用法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • 利用Java中Calendar計(jì)算兩個(gè)日期之間的天數(shù)和周數(shù)

    利用Java中Calendar計(jì)算兩個(gè)日期之間的天數(shù)和周數(shù)

    Java 語言的Calendar(日歷),Date(日期),和DateFormat(日期格式)組成了Java標(biāo)準(zhǔn)的一個(gè)基本但是非常重要的部分。日期是商業(yè)邏輯計(jì)算一個(gè)關(guān)鍵的部分。下面這篇文章就給大家介紹了如何利用Java中Calendar計(jì)算兩個(gè)日期之間的天數(shù)和周數(shù),下面來一起看看吧。
    2016-12-12
  • MyBatis元素resultMap介紹及使用詳解

    MyBatis元素resultMap介紹及使用詳解

    這篇文章主要介紹了MyBatis元素resultMap介紹及使用,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06
  • SpringBoot整合SpringCloud的過程詳解

    SpringBoot整合SpringCloud的過程詳解

    SpringCloud專注于為典型的用例和擴(kuò)展機(jī)制提供良好的開箱即用體驗(yàn),在介紹SpringCloud默認(rèn)使用的注冊(cè)中心前,先給大家介紹下分布式系統(tǒng)的三個(gè)指標(biāo),具體內(nèi)容詳情跟隨小編一起看看吧
    2021-09-09
  • Spring中的@Transactional注解使用詳解

    Spring中的@Transactional注解使用詳解

    這篇文章主要介紹了Spring中的@Transactional注解使用詳解,@Transactional 是一個(gè)注解,用于在 Spring 框架中管理事務(wù)的聲明式事務(wù)管理機(jī)制,它可以應(yīng)用于方法或類級(jí)別,并指示方法或類在執(zhí)行時(shí)應(yīng)該被包裝在一個(gè)事務(wù)中,需要的朋友可以參考下
    2024-01-01
  • Java過濾器@WebFilter用法詳解

    Java過濾器@WebFilter用法詳解

    @WebFilter用于將一個(gè)類聲明為過濾器,該注解將會(huì)在部署時(shí)被容器處理,容器將根據(jù)具體的屬性配置將相應(yīng)的類部署為過濾器,這篇文章主要給大家介紹了關(guān)于Java過濾器@WebFilter用法的相關(guān)資料,需要的朋友可以參考下
    2024-01-01
  • Swing圖形界面實(shí)現(xiàn)可動(dòng)態(tài)刷新的驗(yàn)證碼

    Swing圖形界面實(shí)現(xiàn)可動(dòng)態(tài)刷新的驗(yàn)證碼

    這篇文章主要為大家詳細(xì)介紹了Swing圖形界面實(shí)現(xiàn)可動(dòng)態(tài)刷新的驗(yàn)證碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • Java快速實(shí)現(xiàn)圖書管理基本功能

    Java快速實(shí)現(xiàn)圖書管理基本功能

    隨著網(wǎng)絡(luò)技術(shù)的高速發(fā)展,計(jì)算機(jī)應(yīng)用的普及,利用計(jì)算機(jī)對(duì)圖書館的日常工作進(jìn)行管理勢在必行,本篇文章涵蓋一個(gè)圖書管理系統(tǒng)的基本功能實(shí)現(xiàn)代碼,大家可以查缺補(bǔ)漏,提升水平
    2022-05-05
  • Java 是如何讀取和寫入瀏覽器Cookies的實(shí)例詳解

    Java 是如何讀取和寫入瀏覽器Cookies的實(shí)例詳解

    這篇文章主要介紹了Java 是如何讀取和寫入瀏覽器Cookies的實(shí)例的相關(guān)資料,需要的朋友可以參考下
    2016-09-09

最新評(píng)論