1. 程式人生 > >Java學習個人備忘錄之關鍵字final

Java學習個人備忘錄之關鍵字final

span 16px 覆蓋 變化 單詞 為什麽 不支持 end 不讓

final關鍵字
final可以修飾類,方法,變量。
final修飾的類不可以被繼承
final修飾的方法不可以被覆蓋
final修飾的變量是一個常量。只能被賦值一次。
內部類只能訪問被final修飾的局部變量。

class Fu
{
	void method()
	{
		//調用了底層系統的資源
	}
}


class Zi extends Fu
{
	void method()
	{
		System.out.println("haha");
	}
}

從上面可以看出繼承是有弊端的,就是打破了封裝性。
這時我們就可以用final關鍵字,不讓別人繼承,如下:

final class Fu
{
	void method()
	{
	//調用了底層系統的資源
	}
}


class Zi extends Fu
{
	void method()
	{
		System.out.println("haha");
	}
}
//這樣在編譯的時候就會報錯。



final的初始化
final的初始化並不是固定初始化,而是顯式初始化。
int x; 這樣寫後,x會被初始化為0。
但是如果是
final int x; 這樣編譯就會報錯。 因為它不支持固定初始化

通常情況下 有final就會有static修飾符
static final int x = 8;

因為加了final就意味著他會被共享。

為什麽要用final修飾變量。 其實在程序中如果一個數據是固定的,
那麽直接使用這個數據就可以了,但是這樣閱讀性差,所以它給數據起個名字。
而且這個變量名稱的值不能變化,所以加上final固定。

寫法規範:常量所有字母都大寫,多個單詞,中間用 _ 連接。

Java學習個人備忘錄之關鍵字final