中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java中final如何使用

發布時間:2022-05-30 10:29:43 來源:億速云 閱讀:148 作者:iii 欄目:開發技術

這篇“Java中final如何使用”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“Java中final如何使用”文章吧。

一、理解

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 修飾局部變量時,表明此形參是一個常量。當我們調用此方法時,給常量形參賦一個實參。一旦賦值以后,就只能在方法體內使用此形參,且不能進行重新賦值。

三、經典題目

//題目一:
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的靜態初始化塊");
	}
	{
		System.out.println("Root的普通初始化塊");
	}
	public Root(){
		super();
		System.out.println("Root的無參數的構造器");
	}
}
class Mid extends Root{
	static{
		System.out.println("Mid的靜態初始化塊");
	}
	{
		System.out.println("Mid的普通初始化塊");
	}
	public Mid(){
		super();
		System.out.println("Mid的無參數的構造器");
	}
	public Mid(String msg){
		//通過this調用同一類中重載的構造器
		this();
		System.out.println("Mid的帶參數構造器,其參數值:"
			+ msg);
	}
}
class Leaf extends Mid{
	static{
		System.out.println("Leaf的靜態初始化塊");
	}
	{
		System.out.println("Leaf的普通初始化塊");
	}	
	public Leaf(){
		//通過super調用父類中有一個字符串參數的構造器
		super("小老師ir");
		System.out.println("Leaf的構造器");
	}
}
public class LeafTest{
	public static void main(String[] args){
		new Leaf(); 
		System.out.println();
		new Leaf();
	}
}
/*output:
Root的靜態初始化塊
Mid的靜態初始化塊
Leaf的靜態初始化塊
Root的普通初始化塊
Root的無參數的構造器
Mid的普通初始化塊
Mid的無參數的構造器
Mid的帶參數構造器,其參數值:小老師ir
Leaf的普通初始化塊
Leaf的構造器
Root的普通初始化塊
Root的無參數的構造器
Mid的普通初始化塊
Mid的無參數的構造器
Mid的帶參數構造器,其參數值:小老師ir
Leaf的普通初始化塊
Leaf的構造器
*/

以上就是關于“Java中final如何使用”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

西峡县| 大渡口区| 江阴市| 合阳县| 潼关县| 腾冲县| 佛冈县| 东阿县| 江阴市| 温泉县| 河源市| 潍坊市| 平山县| 黄冈市| 武平县| 泸溪县| 兴安盟| 婺源县| 昌宁县| 股票| 普陀区| 保靖县| 定州市| 亳州市| 英山县| 社旗县| 安化县| 鱼台县| 台中县| 巴楚县| 电白县| 谷城县| 奉化市| 文安县| 沙坪坝区| 莆田市| 襄汾县| 桂平市| 牡丹江市| 斗六市| 绥宁县|