上一篇文章我們聊了"接口"的用法,今天我們聊一下static、final和abstract它們?nèi)齻€(gè)修飾符的用法,這三個(gè)修飾符在java開(kāi)發(fā)中經(jīng)常遇到,能清晰掌握它們的概念和用法對(duì)開(kāi)發(fā)人員來(lái)說(shuō)很重要。 首先從static修飾符開(kāi)始,static修飾符經(jīng)常被稱為"靜態(tài)"修飾符,簡(jiǎn)單的說(shuō)就是由static修飾的內(nèi)容會(huì)隨著類的加載而加載。static修飾的屬性具備以下幾個(gè)特點(diǎn):1.能夠在同一個(gè)類的對(duì)象之間共享。2.既可以通過(guò)對(duì)象名點(diǎn)取進(jìn)行訪問(wèn),也可以通過(guò)類名點(diǎn)取直接訪問(wèn)。3.只能用static修飾成員屬性,不能修飾局部屬性??匆粋€(gè)實(shí)例:
static還能修飾方法,由static修飾的方法稱為"靜態(tài)方法"或"類方法"。static修飾的方法具備以下幾個(gè)特點(diǎn):1.可以通過(guò)類的名字直接點(diǎn)取加以訪問(wèn)。2.不能被子類重寫(xiě)。3.不能直接訪問(wèn)外部非static元素。4.static修飾的方法體內(nèi)不能使用super和this關(guān)鍵字??匆粋€(gè)實(shí)例:
static還能單獨(dú)修飾一個(gè)代碼塊,稱為"static塊"或者"靜態(tài)塊",它的特點(diǎn)是隨著類的加載而加載,但是只加載一次。它的功能介于方法和構(gòu)造器之間。static方法在下一篇關(guān)于"多態(tài)"的文章中還有闡述??匆粋€(gè)實(shí)例:
下面我們聊一下關(guān)于final修飾符的使用,final能修飾屬性、方法和類,總結(jié)一下:1.由final修飾的屬性稱為"常量",在程序的執(zhí)行過(guò)程中不能修改它的賦值。2.由final修飾的方法不能被子類重寫(xiě)。3.由final修飾的類不能被繼承??匆粋€(gè)實(shí)例:
例子中"常量"PORT在進(jìn)行二次賦值時(shí),系統(tǒng)報(bào)錯(cuò)了。另外"常量"的命名通常是全部大寫(xiě),以下劃線來(lái)分割多個(gè)單詞,這是一個(gè)約定并不是規(guī)定。 最后我們聊一下關(guān)于abstract修飾符的使用,它主要修飾方法和類。由abstract修飾的方法稱為"抽象"方法,只有定義,沒(méi)有方法實(shí)現(xiàn)體。我們?cè)?quot;接口"中定義的方法都是"抽象"的,由于"接口"中有隱含定義,所以我們并不需要為每個(gè)方法前加abstract修飾符。 而由abstract修飾的類稱為"抽象類",它就是我們?cè)谇懊嫖恼轮刑岬降?quot;半抽象"。之所以稱為"半抽象"是因?yàn)?quot;抽象類"中即可以定義抽象方法也可以定義實(shí)體方法,而且通常一個(gè)"抽象"類中這兩種方法一定會(huì)同時(shí)出現(xiàn)??偨Y(jié)一下"抽象類"的特點(diǎn):1.抽象類中可以定義構(gòu)造器,但是不能創(chuàng)建"抽象類"的對(duì)象。2.抽象類可以實(shí)現(xiàn)"接口"。3.抽象類的意義在于被實(shí)體類繼承,繼承抽象類的實(shí)體類必須實(shí)現(xiàn)其中的"抽象方法"??匆粋€(gè)實(shí)例:
static、final和abstract在后面的文章中依然會(huì)有涉及,掌握它們的概念和用法對(duì)理解后續(xù)的很多概念非常重要。下一篇文章我終于可以跟大家聊一聊"多態(tài)"了,請(qǐng)大家持續(xù)關(guān)注。 |
|
來(lái)自: 新用戶26922hFh > 《待分類》