public、private、protecte、default是Java里用來定義成員的訪問權限的,也就是在成員前不加任何權限修飾符。如: public class A{ void method(){}; } method就屬于default權限。
這四個修飾符的訪問權限如下表: ----------------------------------------------- 類內部 package內 子類 其他 public 允許 允許 允許 允許 protected 允許 允許 允許 不允許 default 允許 允許 不允許 不允許 private 允許 不允許 不允許 不允許 -----------------------------------------------
Java中訪問修飾符public、private、protecte、default的意義講解:public(接口訪問權限): Java語言中訪問限制最寬的修飾符,一般稱之為“公共的”。被其修飾的類、屬性以及方法不僅可以跨類訪問,而且允許跨包(package)訪問。private(你無法訪問): Java語言中對訪問權限限制的最窄的修飾符,一般稱之為“私有的”。被其修飾的類、屬性以及方法只能被該類的對象訪問,其子類不能訪問,更不能允許跨包訪問。protected(繼承訪問權限): 介于public 和 private 之間的一種訪問修飾符,一般稱之為“保護形”。被其修飾的類、屬性以及方法只能被類本身的方法及子類訪問,即使子類在不同的包中也可以訪問。default(包訪問權限):即不加任何訪問修飾符,通常稱為“默認訪問模式“。該模式下,只允許在同一個包中進行訪問。(只限在Java語言中……)
Java語言定義了public、protected、private、abstract、static和final這6常用修飾 詞外還定義了5個不太常用的修飾詞,下面是對這11個Java修飾詞的介紹: 1.public 使用對象:類、接口、成員 介紹:無論它所處在的包定義在哪,該類(接口、成員)都是可訪問的 2.private 使用對象:成員 介紹:成員只可以在定義它的類中被訪問 3.static 使用對象:類、方法、字段、初始化函數 介紹:成名為static的內部類是一個頂級類,它和包含類的成員是不相關的。靜態方法 是類方法, 是被指向到所屬的類而不是類的實例。靜態字段是類字段,無論該字段所在的類創建了 多少實例,該字 段只存在一個實例被指向到所屬的類而不是類的實例。初始化函數是在裝載類時執行 的,而不是在創建 實例時執行的。 4.final 使用對象:類、方法、字段、變量 介紹:被定義成final的類不允許出現子類,不能被覆蓋(不應用于動態查詢),字段值 不允許被 修改。 5.abstract 使用對象:類、接口、方法 介紹:類中包括沒有實現的方法,不能被實例化。如果是一個abstract方法,則方法體 為空,該方 法的實現在子類中被定義,并且包含一個abstract方法的類必須是一個abstract類 6.protected 使用對象:成員 介紹:成員只能在定義它的包中被訪問,如果在其他包中被訪問,則實現這個方法的類 必須是該成 員所屬類的子類。 7.native 使用對象:成員 介紹:與操作平臺相關,定義時并不定義其方法,方法的實現被一個外部的庫實現。 8.strictfp 使用對象:類、方法 介紹:strictfp修飾的類中所有的方法都隱藏了strictfp修飾詞,方法執行的所有浮點 計算遵守 IEEE 754標準,所有取值包括中間的結果都必須表示為float或double類型,而不能利用 由本地平臺浮 點格式或硬件提供的額外精度或表示范圍。 9.synchronized 使用對象:方法 介紹:對于一個靜態的方法,在執行之前jvm把它所在的類鎖定;對于一個非靜態類的方 法,執行 前把某個特定對象實例鎖定。 10.volatile 使用對象:字段 介紹:因為異步線程可以訪問字段,所以有些優化操作是一定不能作用在字段上的。 volatile有時 可以代替synchronized。 11.transient 使用對象:字段 介紹:字段不是對象持久狀態的一部分,不應該把字段和對象一起串起。
新聞熱點
疑難解答