1. 程式人生 > >Java中說明private,protected,public和default的區別

Java中說明private,protected,public和default的區別

  除了default以外,其他都是Java語言的關鍵字。default代表的是對類成員沒有進行修飾的情況。它本身也代表了一種訪問控制符。對於它們4中訪問控制符來說,它們都可以修飾類的成員(包括靜態和非靜態成員),這些修飾也就控制了成員能被其他地方訪問的限制情況。

   對於範圍概念來說,Java指的範圍包括類內部,所在包下,子父類之間和外部包4種情況。如果一個成員需要被外部包所訪問,則必須使用public修飾符;如果一個成員需要被定義在不同包下的子類所訪問,則可以使用publicprotected修飾符;如果一個成員需要被本包下的其他類所訪問,則可以不用寫任何的修飾符,使用public或者

protected也行;若一個成員想使用同類中其他成員,則使用任意一個修飾符即可;若一個成員不想被任何一個外部的類所訪問,則使用private關鍵字比較恰當。

下面對這幾中修飾符作詳細介紹:

1.對於public修飾符,它具有最大的訪問許可權,可以訪問任何一個在CLASSPATH下的類,介面,異常等。它往往對於對外的情況,也就是物件或類對外的一種介面的形式。

2.對於protected修飾符,它主要的作用就是用來保護子類的。它的含義在於子類可以使用它修飾的成員,其他的不可以,它相當於傳遞給子類的一種繼承的東西。

3.對於default來說,有的時候也稱為friendly(友員),它是針對本包訪問而設計的,任何處於本包下的類,介面,異常等,都可以互相訪問,即使是父類沒有用

protected修飾的成員也可以。

4.對於private來說,它的訪問許可權僅限於類的內部,是一種封裝的體現,例如,大多數的成員變數都是修飾為private的,它們不希望被其他任何外部的類訪問。

相關推薦

Java說明private,protected,publicdefault區別

  除了default以外,其他都是Java語言的關鍵字。default代表的是對類成員沒有進行修飾的情況。它本身也代表了一種訪問控制符。對於它們4中訪問控制符來說,它們都可以修飾類的成員(包括靜態和

javaequals()的用法以及“==”的區別

== 的作用:   基本型別:比較的就是值是否相同   引用型別:比較的就是地址值是否相同 equals 的作用:   引用型別:預設情況下,比較的是地址值。 注:不過,我們可以根據情況自己重寫該方法。一般重寫都是自動生成,比較物件的成員變數值是否相同 public class Stri

Javaprivateprotectedpublicdefault區別

(1)對於public修飾符,它具有最大的訪問許可權,可以訪問任何一個在CLASSPATH下的類、介面、異常等。它往往用於對外的情況,也就是物件或類對外的一種介面的形式。 (2)對於protected修飾符,它主要的作用就是用來保護子類的。它的含義在於子類可以用它修飾的成員,其他的不可以,它相當於傳遞給子類

Java: privateprotectedpublicdefault區別

-c .com path class data- pub 其他 註意 font public: 具有最大的訪問權限,可以訪問任何一個在classpath下的類、接口、異常等。它往往用於對外的情況,也就是對象或類對外的一種接口的形式。 protected: 主要的作用就是用來

c++類public,private,protected的用法與區別

1、public修飾的成員變數 在程式的任何地方都可以被訪問,就是公共變數的意思,不需要通過成員函式就可以由類的例項直接訪問 2、private修飾的成員變數 只有類內可直接訪問,私有的,類的例項要通過成員函式才可以訪問,這個可以起到資訊隱藏 3、protected是受保護變數 類內

JAVA對象創建初始化過程

2.3 人的 cin 類型變量 認識 handle product window blank 1.Java中的數據類型   Java中有3個數據類型:基本數據類型(在Java中,boolean、byte、short、int、long、char、float、double這八種

Java枚舉的寫法用法

一個 lang 公司 nbsp -h Language integer com bsp 在公司代碼中,用了一大堆的枚舉,看得我好懵逼。下面開始看看枚舉怎麽寫和怎麽用。一、枚舉的寫法 關於枚舉的寫法,網上好多這方面的知識。這裏直接貼一個我自己寫的

Java的高精度整數高精度小數

整數測試 div string pac 高精 int trac print log 在實際編碼中,會遇到很多高精度的事例,比如,在計算金錢的時候就需要保留高精度小數,這樣計算才不會有太大誤差: 在下面的代碼中,我們驗證了,當兩個float型的數字相加,得到的結果和我們的預期

Java的StringBuffer、StringBuilder包裝器類型

相對 字母 失敗 這樣的 構造方法 stat float cin 序列 1.如何使用StringBuffer類? 答:1).StringBuffer類用於表示可以修改的字符串,稱為字符串緩沖對象; 2).使用運算符的字符串將自動創建字符串緩沖對象; 例:st

Java的JDK,JREJVM之間的區別

run 編譯 java 發布 開發 特性 底層 應用程序 解釋 JDK(Java Development Kit)是針對Java開發員的產品,是整個Java的核心,包括了Java運行環境JRE、Java工具和Java基礎類庫。Java Runtime Environment

Java方法的重載重置(覆蓋)的區別

設置 同時存在 一個 return 同名方法 區分 返回 重置 參數順序 簡單來說,重載就是在同一類中允許同時存在一個以上的同名方法,只要這些方法的參數個數或類型不同即可,而重置(覆蓋)是子類重新定義父類中己經定義的方法,即子類重寫父類方法。 方法的重載 方法的重載就是在同

Java的基本類型引用類型變量的區別

new jre ear ref 數據 這一 對象類型 完成 值傳遞 基本類型: 基本類型自然不用說了,它的值就是一個數字,一個字符或一個布爾值。 引用類型: 是一個對象類型,值是什麽呢?它的值是指向內存空間的引用,就是地址,所指向的內存中保存著變量所表示的一個值或一組

Java常量定義在interfaceclass的區別(轉)

var tac 不能被繼承 ble -o err 模式 variable 個人愛好 最終結論:定義常量在interface和class中其實都行,關鍵是看你的設計和個人愛好。 Java中interface中定義變量默認都是"public static final"類型的,

關於使用Java的for循環if語句打印空心菱形的詳細分析(也算是通過重新梳理一遍來加深自己的理解吧!)

初始化 span 賦值 公式 數列 image 一中 more for循環 啥也別說了,小二,先上代碼: (圖一) 如以上代碼所示,由於程序的執行順序是從左至右,由上而下的,所以當我們想要在DOS窗口打印 一個空心菱形如圖二所示 (圖二) 時:我們可以將其分成上下兩部分,

java內存溢出內存泄漏的區別

int end fbo gin 一個 urn 垃圾 substring 內存問題 內存溢出 雖然在java中我們不用關心內存的釋放, 垃圾回收機制幫助我們回收不需要的對象,但實際上不正當的操作也會產生內存問題:如,內存溢出、內存泄漏 內存溢出:out of memory:簡

Java的代碼點代碼單元(轉)

swing enter 錯誤 字體 消息 關系 小文本 開發人員 界面 文章來源:http://blog.csdn.net/weizhaozhe/article/details/3909079 這篇文章講的很細,但是對於初學者也很難理解,在後面的筆記中,我會陳述自己的簡單

JAVA的深復制淺復制--建議多看幾遍

substring 例如 pack eval new 數據類型 goto ava public 轉載:https://www.cnblogs.com/avivahe/p/5710945.html Java 語言的一個優點就是取消了指針的概念,但也導致了許多程序員在編程中常常

Java 如何進行 BASE64 編碼解碼

解碼 clas nal upd getch 根據 數組 格式 並且 BASE64 編碼是一種常用的字符編碼,在很多地方都會用到。JDK 中提供了非常方便的 BASE64Encoder 和 BASE64Decoder,用它們可以非常方便的完成基於 BASE64 的編碼和解碼。

javaimport機制(指定importimport *的區別)

dem single boot 路徑 list http 簡單 至少 package 轉自:https://www.cnblogs.com/dtts/p/4692480.html java中有兩種包的導入機制,總結如下: 單類型導入(single-type-i

Java 的 JVM、堆棧 -- 初步了解

eap 調用 程序 mmm 劃分 創建 都是 分配 2015a JVM -- Java Virtual Machine(Java虛擬機)   —— 因為要說堆和棧,所以我們必須要先簡單的說一下JVM。(JVM詳細請找度娘啦~)   首先,我們都知道 java 一直宣傳的口號