一、final關(guān)鍵字的功能概述
final關(guān)鍵字可以用來修飾引用、方法和類。
1、用來修飾一個(gè)引用
如果引用為基本數(shù)據(jù)類型,則該引用為常量,該值無法修改;
如果引用為引用數(shù)據(jù)類型,比如對(duì)象、數(shù)組,則該對(duì)象、數(shù)組本身可以修改,但指向該對(duì)象或數(shù)組的地址的引用不能修改。
如果引用時(shí)類的成員變量,則必須當(dāng)場(chǎng)賦值,否則編譯會(huì)報(bào)錯(cuò)。
例子如下所示:
final?class?Person?{????String?name?="zs";????//3.?此處不賦值會(huì)報(bào)錯(cuò)????//final?int?age;????final?int?age?=?10;??}public?class?Demo01?{????public?static?void?main(String[]?args)?{????????//1.?基本數(shù)組類型為常量,無法修改????????final?int?i?=?9;????????//i?=?10;???????????????//2.?地址不能修改,但是對(duì)象本身的屬性可以修改????????Person?p?=?new?Person();????????p.name?=?"lisi";????????final?int[]?arr?=?{1,2,3,45};????????arr[3]?=?999;????????//arr?=?new?int[]{1,4,56,78};????}}
2.用來修飾一個(gè)方法
當(dāng)使用final修飾方法時(shí),這個(gè)方法將成為最終方法,無法被子類重寫。但是,該方法仍然可以被繼承。
class?Person?{????public?final?void?say()?{????????System.out.println("說....");????}????public?void?eat()?{????????System.out.println("吃...");????}}class?Teacher?extends?Person?{????//1.?final修飾的方法不能被重寫,但此方法仍然被繼承????????????public?void?eat()?{????????System.out.println("老師在大口大口的吃...");????}}public?class?Demo02?{????public?static?void?main(String[]?args)?{????????Teacher?t?=?new?Teacher();????????t.say();????}????}
3.用來修飾類
當(dāng)用final修改類時(shí),該類成為最終類,無法被繼承。簡(jiǎn)稱為“斷子絕孫類”。
final?class?Person02?{????}//class?Teacher02?extends?Person02?{?}//class?MyString?extends?String{}public?class?Demo03?{}
以上就是長(zhǎng)沙達(dá)內(nèi)教育java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“Java基礎(chǔ)編程中final關(guān)鍵詞的作用”的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問,請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。