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

Java全面細致講解final的使用

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

一、理解

final:最終的

二、作用

final 可以用來修飾的結構:類、方法、變量

1. 修飾-類

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

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

代碼演示:

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

2. 修飾-方法

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

比如:Object類中getClass();

代碼演示:

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

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 標記的成員變量必須在聲明(顯式初始化)時或在 每個構造器中或代碼塊中顯式賦值,然后才能使用。

如:final double MY_PI = 3.14;

3.2 修飾-局部變量

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

三、經(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ù)的構造器");
	}
}
class Mid extends Root{
	static{
		System.out.println("Mid的靜態(tài)初始化塊");
	}
	{
		System.out.println("Mid的普通初始化塊");
	}
	public Mid(){
		super();
		System.out.println("Mid的無參數(shù)的構造器");
	}
	public Mid(String msg){
		//通過this調(diào)用同一類中重載的構造器
		this();
		System.out.println("Mid的帶參數(shù)構造器,其參數(shù)值:"
			+ msg);
	}
}
class Leaf extends Mid{
	static{
		System.out.println("Leaf的靜態(tài)初始化塊");
	}
	{
		System.out.println("Leaf的普通初始化塊");
	}	
	public Leaf(){
		//通過super調(diào)用父類中有一個字符串參數(shù)的構造器
		super("小老師ir");
		System.out.println("Leaf的構造器");
	}
}
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ù)的構造器
Mid的普通初始化塊
Mid的無參數(shù)的構造器
Mid的帶參數(shù)構造器,其參數(shù)值:小老師ir
Leaf的普通初始化塊
Leaf的構造器
Root的普通初始化塊
Root的無參數(shù)的構造器
Mid的普通初始化塊
Mid的無參數(shù)的構造器
Mid的帶參數(shù)構造器,其參數(shù)值:小老師ir
Leaf的普通初始化塊
Leaf的構造器
*/

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

相關文章

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

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

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

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

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

    Java實現(xiàn)音頻轉文本的示例代碼(語音識別)

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

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

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

    解決Maven項目加載spring bean的配置xml文件會提示找不到問題

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

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

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

    IDEA設置多行展示導航欄方式

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

    Java幾種常用JSON庫性能比較詳解

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

    使用jsoup解析html的table中的文本信息實例

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

    為什么SpringBoot的jar可以直接運行

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

最新評論

武平县| 涞水县| 莱芜市| 龙井市| 盐源县| 安西县| 景东| 鹤岗市| 新泰市| 屏山县| 松潘县| 民丰县| 天祝| 大英县| 米泉市| 山阳县| 丁青县| 金阳县| 芦溪县| 全椒县| 平顺县| 天等县| 朝阳市| 息烽县| 辽宁省| 平和县| 洱源县| 卢湾区| 津南区| 南丹县| 扎鲁特旗| 汉阴县| 奈曼旗| 宁远县| 通渭县| 桐城市| 白朗县| 木里| 马尔康县| 大埔区| 公安县|