1. 程式人生 > >我的理解之JAVA中的4種訪問許可權

我的理解之JAVA中的4種訪問許可權

一、Java中有四種訪問許可權,private、default(一般省略)、public、protected。

  1. private: Java語言中對訪問許可權限制的最窄的修飾符,一般稱之為“私有的”。被其修飾的屬性以及方法只能被該類的物件訪問,其子類不能訪問,更不能允許跨包訪問。
  2. default:即不加任何訪問修飾符,通常稱為“預設訪問許可權“或者“包訪問許可權”。該模式下,只允許在同一個包中進行訪問。
  3. protected: 介於public 和 private 之間的一種訪問修飾符,一般稱之為“保護訪問許可權”。被其修飾的屬性以及方法只能被類本身的方法及子類訪問,即使子類在不同的包中也可以訪問。
  4. public: Java語言中訪問限制最寬的修飾符,一般稱之為“公共的”。被其修飾的類、屬性以及方法不僅可以跨類訪問,而且允許跨包訪問。

這裡需要注意的是,所謂的訪問,可以分為兩種不同方式:第一,通過物件例項訪問;第二,直接訪問。
比如說,某父類protected許可權的成員,子類是可以直接訪問的,換一種說話是子類其實繼承了父類的除了private成員外的所有成員,包括protected成員,所以與其說是子類訪問了父類的protected成員,不如說子類訪問了自己的從父類繼承來的protected成員。另一方面,如果該子類與父類不在同一個包裡,那麼通過父類的物件例項是不能訪問父類的protected成員的

二、下面用表格來展示四種修飾符的訪問許可權範圍:

許可權 類內 同包 不同包子類 不同包非子類
private × × ×
default × ×
protected ×
public

三、舉個栗子

在Eclipse中新建個類,四個類的結構如下,Aclass 和Bclass 是同包的類,Cclass 和Dclass是同包的類,Cclass 繼承了Aclass。
目錄
Aclass類的定義如下,有四個成員變數,許可權分別為private、default、protected、public。四個成員方法,許可權分別為 private、default、protected、public。
這裡寫圖片描述

Bclass類定義如下,它和Aclass類同屬於 test1包 ,在裡面定義了一個成員方法show(),該方法通過兩種方法對Aclass類的所有成員進行了訪問,第一方法通過例項化一個Aclass類物件aa對成員變數及方法進行訪問,第二種是直接訪問Aclass中的成員。通過IDE的自動檢測報錯,可以看出,Bclass類是不能直接訪問Aclass類的成員的,但通過物件的方法可以訪問default許可權以下(default、protected、public)的成員。
這裡寫圖片描述

Cclass類定義如下,它和Aclass類屬於不同的包,但是Cclass繼承了Aclass ,在裡面定義了一個成員方法show(),該方法同樣通過兩種方法對Aclass類的所有成員進行了訪問,第一方法通過例項化一個Aclass類物件aa對成員變數及方法進行訪問,第二種是直接訪問Aclass中的成員。通過IDE的自動檢測報錯,可以看出,Cclass類是可以直接訪問Aclass類許可權為protected、public的成員(因為子類的緣故),但通過物件的方法只能訪問 public許可權的成員(因為Cclass和Aclass不同包)。
這裡寫圖片描述

Dclass類定義如下,它是Aclass類不同包的一般類,在裡面定義了一個成員方法show(),該方法同樣通過兩種方法對Aclass類的所有成員進行了訪問,第一方法通過例項化一個Aclass類物件aa對成員變數及方法進行訪問,第二種是直接訪問Aclass中的成員。通過IDE的自動檢測報錯,可以看出,Dclass類是不可以直接訪問Aclass類的成員(因為不是子類的緣故),但通過物件的方法只能訪問 public許可權的成員(因為class和Aclass不同包)。

這裡寫圖片描述

四、總結語

以上栗子,對JAVA語言種4種訪問許可權做了簡單的探討,這就是我對它們的理解。

相關推薦

java4訪問修飾符的區別

java中有4中訪問修飾符;(1)private(2)public(3) protected(4) friendly. (1)private :被private修飾的變數和方法,只能在本類中使用。在其他的類中訪問不到。在java中實體類中的變數被定義為pivate,外界使用

Java訪問許可權總結

一、Java中有四種訪問許可權, 其中三種有訪問許可權修飾符,分別為private、public、protected,還有一種不帶任何修飾符(default)。 1. private: Java語言中對訪問許可權限制的最窄的修飾符,一般稱之為“私有的”。被其修飾的屬性以及

理解JAVA4訪問許可權

一、Java中有四種訪問許可權,private、default(一般省略)、public、protected。 private: Java語言中對訪問許可權限制的最窄的修飾符,一般稱之為“私有的”。被其修飾的屬性以及方法只能被該類的物件訪問,其子類

探究Java4訪問許可權--------Java的系列學習路(14)

前言—— 今天軍訓的第四天,早上下了小雨,摸魚了一上午,下午練軍體拳。想寫的內容很多,突然不知道今晚總結什麼,最終決定寫個基本但是非常重要的部分。 歡迎轉載,轉載請註明來處。 在Java中有4種訪問許可權關鍵字,分別是public,private,protected,

java4修飾符訪問許可權的區別及詳解全過程,final修飾符 ,static修飾符 ,abstract修飾符

 訪問許可權         類   包  子類  其他包     public          ∨   ∨   ∨     ∨     protected     ∨   ∨   ∨     ×     default         ∨   ∨   ×    

Java4安全沙箱機制安全管理器及Java API

簡介 java安全沙箱的前三類保證了jvm所執行程式的完整性,使得jvm不會因為執行有漏洞或惡意的程式碼而導致出現不可預期的狀態。而第四類沙箱模型是“類安全管理器及Java API”,它能保護jvm在執行有漏洞或惡意的程式碼不會破壞外部資源。java通過稱為安全管理器的一類

java訪問修飾符

pub oid 默認 成員變量 修飾 對象 fault 其中 () Java中的四種訪問修飾符:public、protected、default(無修飾符,默認)、private。 四種修飾符可修飾的成分(類、方法、成員變量) public protect

java訪問修飾符區別及詳解全過程

HP dnv ax1 pci gda fmm utc dos rdp 客戶端程序員:即在其應用中使用數據類型的類消費者,他的目標是收集各種用來實現快速應用開發的類。   類創建者:即創建新數據類型的程序員,目標是構建類。     訪問控制存在的原因:a、讓客戶端程序員無法觸

Java4許可權修飾符修飾類、與成員的分析

前言:在最近做專案中,對許可權修飾符又有了新的認知,對這塊知識的脈絡也越來越清晰,來部落格mark一下。 (ps.文中所說的default修飾指的是不加任何許可權修飾符。此外,為了敘述的方便,本文中涉及的類指的是外部類,涉及的成員指的是非靜態成員方法) 1、類的2種許

java4迴圈方法(附帶例題)

java迴圈結構 順序結構的程式語句只能 被執行一次。如果你要同樣的操作執行多次,就需要使用迴圈結構。 java中有三種主要的迴圈結構: while 迴圈 do...while 迴圈 for 迴圈 在java5中引入一種主要用於陣列的增強型for迴圈。

詳解 Java 4 I/O 模型

同步、非同步、阻塞、非阻塞都是和I/O(輸入輸出)有關的概念,最簡單的檔案讀取就是I/O操作。而在檔案讀取這件事兒上,可以有多種方式。 本篇會先介紹一下I/O的基本概念,通過一個生活例子來分別解釋下這幾種I/O模型,以及Java支援的I/O模型。 基本概念 在解釋I/O模

Java訪問修飾符訪問許可權

對於剛剛畢業的學生來說,面試的會比較容易遇見的題目(當初我剛剛畢業面試的時候遇到過幾次),畢竟這四個訪問修飾符是比較基礎的知識點,一般先記憶許可權訪問比較“嚴格”的private訪問修飾符,在記憶其他的

java訪問方式的小結

可見:直接訪問 public 1、使用public修飾的成員對當前工程下的任意該類物件都可見 成員變數:物件名.屬性名 成員方法:物件名.方法名() 構造方法: new 類名(); 2、對於該類子類來

Java訪問修飾符區

java中四種訪問修飾符區別及詳解全過程   客戶端程式設計師:即在其應用中使用資料型別的類消費者,他的目標是收集各種用來實現快速應用開發的類。   類建立者:即建立新資料型別的程式設計師,目標是構建類。     訪問控制存在的原因:a、讓客戶端程式設計師

JAVA訪問修飾符的區別總結

在Java中有四個訪問修飾符,分別是: 1:public; 2:protected; 3:預設(default) 4:private。 這四種的訪問修飾符的訪問許可權等級從上到下依次增加。 接下來將用程式碼依次的展示這四種訪問修飾符,在—-本類(自己

Java的包訪問許可權

Java預設訪問許可權沒有任何關鍵字,但通常是指包訪問許可權(有時也表示成為friendly)。    這就意味著當前的包中的所有其他類對那個成員都有訪問許可權,但對於這個包之外的所有類,這個成員卻是private。    由於一個編譯單元(即一個檔案),只能隸屬於一個包,所以經由包訪問許可權,處

java4訪問修飾符

java中訪問修飾符public,private,protected,以及預設(default)時的區別: 修飾符 當前類 同 包 子 類 其他包 public

java修飾符(private、default、protected、public)的訪問權限

ble ted span java 修飾符 20px col family style 權限如下: no. 範圍 private default protected public 1 同一包下的同一個類 √ √ √ √ 2 同一包下的不同類 × √ √ √

java程式設計入門2 java的四訪問許可權控制

在java中提供了四種訪問許可權控制:預設訪問許可權(包訪問許可權),public,private以及protected 只有預設訪問許可權(包訪問許可權)和public能用來修飾類(不包括內部類) 修飾變數和方法這四種許可權均可 1.public 修飾類表示該類對其他所有類可見 修飾一個類的變數和

Java引用強 軟 弱 虛 的詳細介紹及理解

 Java中強軟弱虛四種引用 一:引用的目的: 在Java中垃圾回收器的執行是JVM操作的,但是我們仍然可以在一定程度上與垃圾回收器進行互動,其目的在於更好的幫助垃圾回收器管理好應用的記憶體,避免記憶