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訪問許可權
- 論Java訪問許可權控制的重要性Java訪問許可權
- Java:談談protected訪問許可權薦Java訪問許可權
- 使用nginx控制ElasticSearch訪問許可權NginxElasticsearch訪問許可權
- java基礎(八)—–深入解析java四種訪問許可權Java訪問許可權
- java基礎(七) java四種訪問許可權深入解析Java訪問許可權
- Java 訪問許可權修飾符學習筆記Java訪問許可權筆記
- SQLServer控制使用者訪問許可權表SQLServer訪問許可權
- Java入門筆記(六)——訪問許可權修飾符Java筆記訪問許可權
- Swift 中 Selector 方法的訪問許可權控制問題Swift訪問許可權
- Quarkus中基於角色的許可權訪問控制教程
- k8s結合jumpserver做kubectl許可權控制 使用者在多個namespaces的訪問許可權 rbac許可權控制K8SServernamespace訪問許可權
- mongoDB 3.0 安全許可權訪問MongoDB
- Swift4.0 訪問許可權Swift訪問許可權
- AndroidPermission訪問許可權大全Android訪問許可權
- public, private, protected 訪問許可權訪問許可權
- Java中類的成員方法和變數的訪問許可權Java變數訪問許可權
- Nginx訪問控制_登陸許可權的控制(http_auth_basic_module)NginxHTTP
- Think Authz:支援 ACL、RBAC、ABAC 等模型的授權(角色和許可權控制)庫模型
- JAVA(二)異常/包及訪問許可權/多執行緒/泛型Java訪問許可權執行緒泛型
- 深入理解 Java 修飾符與封裝:訪問許可權、行為控制與資料隱藏Java 修飾符封裝訪問許可權行為控制資料隱藏
- redis密碼設定、訪問許可權控制等安全設定Redis密碼訪問許可權
- 網路層訪問許可權控制技術 ACL詳解(轉)訪問許可權
- Elasticsearch 許可權控制Elasticsearch
- 程式設計實現遍歷ACL訪問控制列表檢查程式訪問許可權程式設計訪問許可權
- android自定義訪問許可權permissionAndroid訪問許可權
- android:各種訪問許可權PermissionAndroid訪問許可權
- Java Web角色許可權設計JavaWeb
- jCasbin: 強大的訪問控制、許可權管理框架,支援 ACL, RBAC, ABAC框架
- 訪問許可權控制系統|全方位認識 mysql 系統庫訪問許可權MySql
- 如何用 Vue 實現前端許可權控制(路由許可權 + 檢視許可權 + 請求許可權)Vue前端路由
- win10老跳出訪問許可權怎麼辦_win10訪問許可權怎麼關閉Win10訪問許可權
- win7訪問xp您沒有許可權訪問 共享。請與網路管理員聯絡請求訪問許可權Win7訪問許可權
- Ubuntu共享資料夾訪問許可權問題Ubuntu訪問許可權
- Linux許可權控制Linux
- Appfuse:許可權控制APP
- 教程示例:控制儲存空間和資料夾的訪問許可權訪問許可權