Java基礎(十八)
阿新 • • 發佈:2018-12-19
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啦定義引數,此時也表示一個常量的概念。