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

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的無(wú)參數(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的無(wú)參數(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的無(wú)參數(shù)的構(gòu)造器
Mid的普通初始化塊
Mid的無(wú)參數(shù)的構(gòu)造器
Mid的帶參數(shù)構(gòu)造器,其參數(shù)值:小老師ir
Leaf的普通初始化塊
Leaf的構(gòu)造器
Root的普通初始化塊
Root的無(wú)參數(shù)的構(gòu)造器
Mid的普通初始化塊
Mid的無(wú)參數(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)文章

  • Java的string類為什么是不可變的

    Java的string類為什么是不可變的

    這篇文章主要介紹了Java的string類為什么是不可變的,總結(jié)了三個(gè)答案,需要的朋友可以參考下
    2014-04-04
  • 基于Java實(shí)現(xiàn)Actor模型

    基于Java實(shí)現(xiàn)Actor模型

    Actor模型是一種常見的并發(fā)模型,與最常見的并發(fā)模型—共享內(nèi)存(同步鎖)不同,它將程序分為許多獨(dú)立的計(jì)算單元—Actor,文中有詳細(xì)的代碼示例,感興趣的同學(xué)可以參考閱讀
    2023-05-05
  • Java實(shí)現(xiàn)音頻轉(zhuǎn)文本的示例代碼(語(yǔ)音識(shí)別)

    Java實(shí)現(xiàn)音頻轉(zhuǎn)文本的示例代碼(語(yǔ)音識(shí)別)

    Java中實(shí)現(xiàn)音頻轉(zhuǎn)文本通常涉及使用專門的語(yǔ)音識(shí)別服務(wù),本文主要介紹了Java實(shí)現(xiàn)音頻轉(zhuǎn)文本的示例代碼(語(yǔ)音識(shí)別),具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-05-05
  • Java讀寫txt文件時(shí)防止中文亂碼問題出現(xiàn)的方法介紹

    Java讀寫txt文件時(shí)防止中文亂碼問題出現(xiàn)的方法介紹

    這篇文章主要介紹了Java讀寫txt文件時(shí)防止中文亂碼問題出現(xiàn)的方法,同時(shí)需要注意系統(tǒng)默認(rèn)的文本保存編碼的設(shè)置,需要的朋友可以參考下
    2015-12-12
  • 解決Maven項(xiàng)目加載spring bean的配置xml文件會(huì)提示找不到問題

    解決Maven項(xiàng)目加載spring bean的配置xml文件會(huì)提示找不到問題

    這篇文章主要介紹了解決Maven項(xiàng)目加載spring bean的配置xml文件會(huì)提示找不到問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • obix協(xié)議在java中的配置和使用詳解

    obix協(xié)議在java中的配置和使用詳解

    這篇文章主要給大家介紹了關(guān)于obix協(xié)議在java中的配置和使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-08-08
  • IDEA設(shè)置多行展示導(dǎo)航欄方式

    IDEA設(shè)置多行展示導(dǎo)航欄方式

    在IDEA中開啟多行導(dǎo)航欄可以增加工作效率,具體操作步驟包括訪問“File”,進(jìn)入“Settings”,選擇“Editor”后修改“EditorTabs”設(shè)置中的“Show tabs in one row”選項(xiàng),取消勾選后保存即可,這使得在打開多個(gè)文件時(shí),導(dǎo)航欄可以顯示更多標(biāo)簽,便于管理和查看代碼
    2024-09-09
  • Java幾種常用JSON庫(kù)性能比較詳解

    Java幾種常用JSON庫(kù)性能比較詳解

    這篇文章主要介紹了Java幾種常用JSON庫(kù)性能比較詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-06-06
  • 使用jsoup解析html的table中的文本信息實(shí)例

    使用jsoup解析html的table中的文本信息實(shí)例

    今天小編就為大家分享一篇使用jsoup解析html的table中的文本信息實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • 為什么SpringBoot的jar可以直接運(yùn)行

    為什么SpringBoot的jar可以直接運(yùn)行

    這篇文章主要介紹了為什么SpringBoot的jar可以直接運(yùn)行,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05

最新評(píng)論

岳普湖县| 屏南县| 昭通市| 博湖县| 古蔺县| 玛多县| 通化县| 江永县| 梅州市| 虞城县| 宣化县| 富阳市| 广丰县| 阿坝县| 衡阳市| 宝鸡市| 云阳县| 云龙县| 泸州市| 新民市| 贺兰县| 舞阳县| 曲水县| 霞浦县| 富民县| 英山县| 连南| 玉山县| 龙州县| 涪陵区| 昆山市| 武陟县| 色达县| 苗栗县| 乌拉特后旗| 清水河县| 锦屏县| 宽甸| 望江县| 绩溪县| 黄浦区|