當前位置:旅游攻略大全網 - 装修公司 - 怎麽會?Java通過訪問控制修飾符和包封裝類?

怎麽會?Java通過訪問控制修飾符和包封裝類?

首先,非訪問修飾符。

1,抽象類:

任何用抽象修飾符修飾的類都稱為抽象類。抽象類是沒有具體對象的概念類。

抽象類是壹種優化的概念組織:抽象出共同的特征;之後,在描述和處理壹個具體的對象時,我們只需要描述不同的特殊性。這種組織方式使得所有的概念都清晰簡潔,非常符合人們日常的思維習慣。

由於抽象類是其所有子類的公共屬性的集合,所以使用抽象類的壹個好處就是可以充分利用這些公共屬性來提高程序的開發和維護效率。

值得壹提的是,面向對象技術是用更接近人類思維方式的方式來處理實際問題,而抽象類的建立就是這種思想的具體體現之壹,是模仿人類思維方式的產物。

2、最後壹節課:

如果壹個類被final修飾符修改和限定,就意味著這個類不能有子類。

定義為final的類通常是具有固定角色的類,用於完成壹些標準功能。比如Java系統定義的實現網絡功能的InterAddress、Socket等類都是最終類。

抽象和final修飾符不能同時修飾壹個類,因為抽象類本身沒有具體的對象,在創建子類之前需要派生子類。最終類不能有子類。這樣壹起裝修沒有意義。

3、壹些類修飾符也可以用來修飾類中的字段或方法:

(1)域:是類和對象的靜態屬性,定義域的操作是描述變量或創建對象的操作。

& lt1 & gt;靜態域:

用靜態修飾符修飾的字段是只屬於類的靜態字段。靜態域是由類中的每個對象共享的域。它們是類的域,不屬於任何類的具體對象。是壹個公共存儲單元,當任何類的對象訪問它時,它們都獲得相同的值。

& lt2 & gt靜態初始值設定項:

靜態初始化器是由壹對大括號包圍的語句組,由關鍵字static引導。函數是在加載時初始化類的靜態域。

像構造函數壹樣,它們都用於初始化,但是靜態初始化器和構造函數有三個不同之處:

①構造函數初始化每個新創建的對象,而靜態初始化器初始化類本身。

②構造函數在new操作符生成新對象時由系統自動執行,而靜態初始化器在所屬的類加載到內存時由系統調用執行。

③與構造函數不同,靜態初始化器不是方法,沒有方法名、返回值和參數列表。

& lt3 & gt最終域:

用final修飾的字段實際上是Java中的常量。

當用final修飾符描述常量時,需要註意以下幾點:

(1)需要解釋數據類型的常數。

②需要同時指出常數的具體值。

(3)由於所有類對象的常量成員都有固定的值,為了節省空間,常量通常被聲明為靜態的。

& lt4 & gt易變域:

如果壹個域被volatile modifier修改,則意味著這個域可能同時被幾個線程控制和修改,即這個域不僅被當前程序所掌握,而且在運行過程中可能會被其他未知的程序操作所影響和改變。使用時要特別註意。

通常,volatile用於修改接受外部輸入的字段。比如代表當前時間的變量,隨時修改系統的後臺線程,保證在程序中總是獲得最新的當前系統時間,所以可以定義為volatile域。

(2)方法:是類的動態屬性,表示類的功能和操作。括號是方法的符號。

& lt1 & gt;抽象方法:

修飾符abstract修改的抽象方法是只有方法頭,沒有具體的方法體和操作實現的方法。使用抽象方法的目的是讓所有的子類都呈現壹個同名的方法,這是壹個統壹的接口。所有抽象方法必須存在於抽象類中。

& lt2 & gt靜態方法:

用靜態修飾符修飾的方法是屬於整個類的類方法,而不是對象或實例的方法。調用此方法時,應該使用類名作為前綴;這個方法在內存中的代碼段會被分配和加載類的定義,這個類不獨占任何對象;只能處理屬於整個類的成員變量。

& lt3 & gt最終方法:

用final修飾符修飾的類方法。函數和內部語句不能再更改的方法不能再被繼承。

註意:所有被private修飾符私有的方法,以及final類中包含的所有方法,默認情況下都被認為是final。

& lt4 & gt本地方法:

聲明壹個用其他語言編寫方法體,用原生修飾符實現方法功能的特殊方法。這裏的其他語言包括C/C++/FROTRAN/ Assembly等。因為本地方法的方法體是在程序外用其他語言編寫的,所以所有本地方法都沒有方法體,而是用分號替換。

& lt5 & gt同步方法:

如果同步修改的方法是類方法(即靜態方法),則系統類中當前類對應的對象在被調用執行前會被鎖定。如果synchronized修改了壹個對象的方法(壹個沒有被static修改的方法),這個方法會在被調用執行之前鎖定當前對象。Synchronized修飾符主要用於多線程共存的程序中的協調和同步。

第二,訪問控制符號。

訪問控制器是壹組修飾符,用於限制壹個類、字段或方法是否可以被程序的其他部分訪問和調用。壹個類只有壹個公共訪問控制器,壹個域和壹個方法有四個訪問控制器,即公共、私有、受保護和私有受保護。還有壹種默認情況,即沒有定義特殊的訪問控制器。

1,公共訪問控制器公共:

Java類是由包的概念組織起來的,包是壹個松散的Bausch類集合。同壹個包中的類可以很容易地相互訪問和引用,而不需要任何解釋,但對於不同包中的類則不行。但是當壹個類被聲明為public時,它就有被其他包中的類訪問的可能性。只要這些其他包中的類使用import語句在程序中引入public類,它們就可以訪問和引用這個類。

在壹個類中設置為public的方法就是這個類的外部接口部分,避免了程序的其他部分直接操作類中的數據,這其實就是數據封裝思想的體現。

出於同樣的原因,每個Java程序的主類都必須是公共類。

用public修飾的類的域稱為公共域。如果壹個公共域屬於壹個公共類,它可以被所有其他類引用。public修飾符會降低數據封裝的安全性,所以壹般應該減少公共域的使用。

2.默認訪問控制器:

默認的訪問控制權限規定這個類只能被同壹個包中的類訪問和引用,而不能被其他包中的類訪問和引用。這種訪問特征也稱為包可訪問性。

類似地,如果壹個類中的壹個域或方法是由壹個美學訪問控制器定義的,那麽它也有包訪問權。

簡單地說,在同壹個程序中定義的所有類都屬於壹個包。

3、私有訪問控制器私有:

用private修飾的字段或方法只能被類本身訪問和修改,不能被任何其他類(包括它的子類)獲取和引用。private修飾符用於聲明這些類的私有成員,這提供了最高級別的保護。

4、保護門禁符號受保護:

用protected修飾的成員變量可以被三個類別引用:類本身、與它在同壹個包中的其他類以及其他包中該類的子類。使用protected修飾符的主要功能是允許其他包中該類的子類訪問父類的特定屬性。

5、私有受保護訪問控制器私有受保護:

用private protected修飾的成員變量可以被兩種訪問和引用,壹種是類本身,壹種是類的所有子類。將同壹包中的非子類排除在可訪問範圍之外,使得成員變量在具有明確繼承關系的類中更加專門化,而不是松散分組的包。