1. 程式人生 > >Java基礎(十八)

Java基礎(十八)

final關鍵字

1:定義

final在程式之中描述的是終結器的概念,在Java可以實現如下功能:定義不能夠被繼承的類,定義不能夠被覆寫的方法,常量。

2:final定義不能被繼承類

語法格式:final class 類名{ }

當子類繼承了父類之後實際上是可以進行父類中方法覆寫的,但是如果你現在不希望你的某一個方法被子類所覆寫就可以使用final進行定義。

//案例:定義不能被覆寫的方法
class Channel {	// 這個類不能夠有子類
	public final void connect() {}
}
class DatabaseChannel extends Channel {	// 錯誤的
	public void connect() {}
}

2:final定義引數

在一些系統開發中,肯需要使用1表示開關開啟,使用0表示關閉,但是如果現在直接操作0和1則會總成混亂,所以希望可以通過一些名稱(有實際意義,容易辨別)來表示0或者1.

針對上述問題,final關鍵字裡面有一個重要的技術應用:可以利用final定義常量,常量的內容一旦定義則不可以修改。

//案例:利用final定義常量
class Channel {	// 這個類不能夠有子類
	private final int ON = 1 ;	// ON就是常量
	private final int OFF = 0 ;	// OFF就是常量
	public final void connect() {
		ON = 2 ;
	}
}

實際上,常量往往都是公共的定義,所以為了可以體現出共享的概念,往往會使用一種全域性常量的形式定義:

使用public static final 來定義全域性常量(定義全域性常量的時候每一個字母必須大寫)。

public static final int ON = 1 ;	// ON就是常量
public static final int OFF = 0 ;	// OFF就是常量
//觀察下列程式碼(換個系統,重灌下eclipse)
public class Demo{
	public static void main(String args[]){
		final String info = "mldn";
		String strA = "www.mldn.cn";
		String strB ="www."+info+".cn";
		System.out.println(strA==strB);
	}
}
//次程式碼和之前的一個程式碼一樣,在例項化String物件的時候。

方法也可以使用final啦定義引數,此時也表示一個常量的概念。