final關(guān)鍵字的用法
推薦 + 挑錯(cuò) + 收藏(0) + 用戶評(píng)論(0)
在Java中,final關(guān)鍵字可以用來(lái)修飾類、方法和變量(包括成員變量和局部變量)。下面就從這三個(gè)方面來(lái)了解一下final關(guān)鍵字的基本用法。
1.修飾類
當(dāng)用final修飾一個(gè)類時(shí),表明這個(gè)類不能被繼承。也就是說(shuō),如果一個(gè)類你永遠(yuǎn)不會(huì)讓他被繼承,就可以用final進(jìn)行修飾。final類中的成員變量可以根據(jù)需要設(shè)為final,但是要注意final類中的所有成員方法都會(huì)被隱式地指定為final方法。
在使用final修飾類的時(shí)候,要注意謹(jǐn)慎選擇,除非這個(gè)類真的在以后不會(huì)用來(lái)繼承或者出于安全的考慮,盡量不要將類設(shè)計(jì)為final類。
2.修飾方法
下面這段話摘自《Java編程思想》第四版第143頁(yè):
“使用final方法的原因有兩個(gè)。第一個(gè)原因是把方法鎖定,以防任何繼承類修改它的含義;第二個(gè)原因是效率。在早期的Java實(shí)現(xiàn)版本中,會(huì)將final方法轉(zhuǎn)為內(nèi)嵌調(diào)用。但是如果方法過(guò)于龐大,可能看不到內(nèi)嵌調(diào)用帶來(lái)的任何性能提升。在最近的Java版本中,不需要使用final方法進(jìn)行這些優(yōu)化了。“
因此,如果只有在想明確禁止 該方法在子類中被覆蓋的情況下才將方法設(shè)置為final的。
注:類的private方法會(huì)隱式地被指定為final方法。
3.修飾變量
修飾變量是final用得最多的地方,也是本文接下來(lái)要重點(diǎn)闡述的內(nèi)容。首先了解一下final變量的基本語(yǔ)法:
對(duì)于一個(gè)final變量,如果是基本數(shù)據(jù)類型的變量,則其數(shù)值一旦在初始化之后便不能更改;如果是引用類型的變量,則在對(duì)其初始化之后便不能再讓其指向另一個(gè)對(duì)象。
舉個(gè)例子:
上面的一段代碼中,對(duì)變量i和obj的重新賦值都報(bào)錯(cuò)了。
非常好我支持^.^
(0) 0%
不好我反對(duì)
(0) 0%