首頁  >  文章  >  Java  >  java中final什麼意思

java中final什麼意思

(*-*)浩
(*-*)浩原創
2019-05-22 09:29:5431391瀏覽

final是java中的一個關鍵字,意思是「恆定不變」。 java中final資料具體有兩個意義:1、對於基本資料類型,表示永不改變的編譯時常數;2、對於普通對象,表示該引用恆定不變,不能指向另外一個對象,但是該對象本身就是可以進行修改的。

java中final什麼意思

Java中的final是關鍵字,它意義是恆定不變的。

final資料具體有兩個意義:

1.對於基本資料型,表示永不改變的編譯時常數。

2.對於普通對象,表示該引用恆定不變,不能指向另外一個對象,但是該對象本身是可以進行修改的。

因此有以下幾個注意點:

1.在類別中的static final 屬性,表示佔據一段不能改變的儲存空間,必須在宣告中初始化,在構造中不能初始化。

2.類別中的 final 屬性,因為不是static值,可以在每次的建構子中宣告。

注意,被final宣告的屬性,只能被初始化一次!非static每個實例最多初始化一次。 static的在類別的建立中只能初始化一次!

3.對於final修飾的物件(例如數組),宣告後可以修改數組,但不能重新指向新的數組。

public class Test_FinalAndStatic {
	static final int i=1;
	final int j;
	public Test_FinalAndStatic(int j){
		//i、j只能被初始化一次 所以j在声明中不能初始化
		this.j=j; 
		//同时 i只能在声明中初始化,不能在构造中初始化
	}
	final int[]	is=new int[]{1,2,3};
	//被final修饰的引用一旦被初始化指向一个对象,就不能再改变,但该对象自身可以改变
	//is=new int[]{3,2,1}; error
	public void dois(){
		//is对象自身可以改变
		is[0]=4;
		System.out.print("is=");
		for(int w:is){	
			System.out.println(w+":");
		}
	}
	public void showi(){
		System.out.println("i="+i);
	//  i只能占据一段不能改变的存储空间 
	//	i++; error
	//	i=5; error
	}
	public void showj(){
		System.out.println("j="+j);
	//	j++; error
	//	j=2; error
	}
	@Override
	public String toString(){
		dois();showi();showj();
		return null;
		
	}
	public static void main(String[]args){
		Test_FinalAndStatic t1=new Test_FinalAndStatic(100);
		t1.toString();
		Test_FinalAndStatic t2=new Test_FinalAndStatic(200);
		t2.toString();
	}
}

結果:

is=4:
2:
3:
i=1
j=100
is=4:
2:
3:
i=1
j=200

final參數:

在訊息中的參數透過final修飾,則表示在訊息中不能改變參數引用所指向的物件。

final方法:

1.鎖定方法,防止任何繼承類別改變它的意義,保證不會被覆寫。

2.同意編譯器將方法的所有調用改為內嵌調用,提高效率。不過現在已不提倡。

3.所有private方法都隱含地指定為final 。由於無法取得private方法,自然也無法重寫。

final類別:

不可繼承,不可改變,不能有子類別。

以上是java中final什麼意思的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn