Think IN JAVA --------JAVA訪問許可權控制
1.JAVA為類中的field以及mehod提供四種訪問許可權:public protected private (預設訪問許可權)包訪問許可權
1>public 修飾的field method ,包內其他的類以及外包中的類均可訪問
2>private 修飾的field method , 只有同一類中的其他field 或method 才能訪問該field或方法
3>包訪問許可權 沒有任何訪問許可權控制符修飾的field method預設為包訪問許可權,只有處於同一包內的其他的類才可以訪問,但對於這個包之外的類訪問許可權為private
4>protected :繼承訪問許可權,a.建立一個新包,並且來自另一個包中繼承類,那麼唯一可以訪問的就是源包中的public b.在同一個包內執行繼承工作,就可以操縱所有的包訪問許可權成員以及public成員 c.protected也提供包訪問許可權,即處於同一包內的其他的類才可以訪問
2.java中的內部類以及處於同一個.java檔案下的其他類
A.可以使用private \protected\預設 修飾,但內部類中的field\method必須都有static修飾,因此內部類也必須用static 修飾
1>private 修飾的內部類
public class TestInnerStatic {
private static class InnerClass {
public static void doSomething() {
System.out.println("private Class doSomething");
}
}
public static void main(String[] args) {
InnerClass.doSomething();
}
}
這個地方一定要注意了:內部類中方法只能是static的,因此,內部類也要宣告為靜態的!
你如果把 public class TestInnerStatic 這個外部類的修飾符改為private,編譯器馬上就報錯了!
不推薦內部類的寫法-----這跟物件導向的理念是不協調的。但是作為java程式設計師,這個基本知識是要懂得,在特殊情況下很有必要使用----訪問許可權!
</pre><pre class="java" name="code" snippet_file_name="blog_20160906_8_304824" code_snippet_id="1869320">
<span style="font-size:18px;">2>沒有任何許可權控制符號修飾的內部類</span>
public class CC {
protected int i=5;
private int k=0;
public int s=3;
static class GG{
static int g=0;
}
public static void main(String []args)
{
CC cc=new CC();
System.out.println(GG.g);
}
}
這個 地方一定要注意:內部類中的方法只能是static 的,所以內部類也要申明為靜態
</pre><pre class="java" name="code" snippet_file_name="blog_20160906_8_304824" code_snippet_id="1869320">
<span style="font-size:18px;">3>protected修飾的內部類同上所述</span>
<div>package org.c;</div><div>
</div><div>public class CC {
protected int i=5;
private int k=0;
public int s=3;
protected static class GG{
static int g=0;
}
public static void main(String []args)
{
CC cc=new CC();
System.out.println(GG.g);
}
}</div><div>
</div>
B.java中位於同一個.java檔案的除內部類以及public類外的其他類,都不可以用private\protected修飾,該類預設擁有包訪問許可權,即同一個包內的其他類可以訪問,但對於這個包之外的類則無法訪問
public class CC {
protected int i=5;
private int k=0;
public int s=3;
public static void main(String []args)
{
CC cc=new CC();
System.out.println(new GG().g);
}
}
class GG{
int g=0;
}
相關文章
- Java 訪問許可權控制(6)Java訪問許可權
- 論Java訪問許可權控制的重要性Java訪問許可權
- 使用nginx控制ElasticSearch訪問許可權NginxElasticsearch訪問許可權
- java基礎(八)—–深入解析java四種訪問許可權Java訪問許可權
- java基礎(七) java四種訪問許可權深入解析Java訪問許可權
- 005.OpenShift訪問控制-許可權-角色
- Java入門筆記(六)——訪問許可權修飾符Java筆記訪問許可權
- k8s結合jumpserver做kubectl許可權控制 使用者在多個namespaces的訪問許可權 rbac許可權控制K8SServernamespace訪問許可權
- Quarkus中基於角色的許可權訪問控制教程
- public, private, protected 訪問許可權訪問許可權
- mongoDB 3.0 安全許可權訪問MongoDB
- 一文讀懂 TKE 及 Kubernetes 訪問許可權控制訪問許可權
- Think Authz:支援 ACL、RBAC、ABAC 等模型的授權(角色和許可權控制)庫模型
- 許可權控制
- 深入理解 Java 修飾符與封裝:訪問許可權、行為控制與資料隱藏Java 修飾符封裝訪問許可權行為控制資料隱藏
- 17-成員訪問許可權訪問許可權
- shiro許可權控制
- 訪問許可權控制系統|全方位認識 mysql 系統庫訪問許可權MySql
- jCasbin: 強大的訪問控制、許可權管理框架,支援 ACL, RBAC, ABAC框架
- win10老跳出訪問許可權怎麼辦_win10訪問許可權怎麼關閉Win10訪問許可權
- Ubuntu共享資料夾訪問許可權問題Ubuntu訪問許可權
- 如何用 Vue 實現前端許可權控制(路由許可權 + 檢視許可權 + 請求許可權)Vue前端路由
- 教程示例:控制儲存空間和資料夾的訪問許可權訪問許可權
- Linux的許可權控制Linux
- 如何在 Linux 中配置 sudo 訪問許可權Linux訪問許可權
- win共享檔案沒有許可權訪問怎麼辦 win10共享檔案許可權訪問的方法Win10
- Java安全之Filter許可權繞過JavaFilter
- 友好訪問許可權篇:訪問語音、相簿、通訊錄----iOS訪問許可權iOS
- Java 類與物件(繼承extends super關鍵詞 方法重寫 抽象abstract 訪問修飾符/許可權控制符)Java物件繼承抽象
- Spring Security實現基於RBAC的許可權表示式動態訪問控制Spring
- geoserver控制服務訪問許可權-類似百度地圖的keyServer訪問許可權地圖
- postgresql關於訪問檢視需要的許可權SQL
- Laravel實現許可權控制Laravel
- 採坑之Android手機訪問相簿許可權問題Android
- 使用Java API操作zookeeper的acl許可權JavaAPI
- 許可權維持專題:域控制器許可權維持
- 淺析Windows的訪問許可權檢查機制Windows訪問許可權
- kubernetes實戰篇之Dashboard的訪問許可權限制訪問許可權
- C++中封裝和繼承的訪問許可權C++封裝繼承訪問許可權