【JAVA基礎篇】訪問權限

所謂訪問權限,指的是本類的成員變量、成員方法和內部類對其他類的可見性。

四種訪問權限

Java一共有四種訪問權限,按照權限由大到小分別為public、protected、default和private,如果省略了訪問修飾符,那訪問權限就是defualt。四種訪問權限的含義和權限控制見下面表格:

訪問權限含義本類本包的類非本包子類非本包非子類
public公共的
protected保護訪問權限
default包訪問權限
private私有的

注意:所謂的訪問,有兩種方式,直接訪問和通過對象訪問。

實際情況跟表格有些出入,需要注意的點:在非本包子類,通過父類的對象實例只能訪問父類的public成員,不能訪問protected成員。

舉例說明

基類SupClass

package com.cc.accessright;
/*** * @描述: 父類* @版權: Copyright (c) 2019 * @作者: cc* @版本: 1.0 * @創建日期: 2019年5月28日 * @創建時間: 上午11:02:06*/
public class SupClass
{public void publicMethod(){System.out.println("=============publicMethod=============");}protected void protectedMethod(){System.out.println("=========protectedMthod===========");}void defaultMethod(){System.out.println("=========defaultMethod========");}private void privateMethod(){System.out.println("=========privateMethod========");}
}

子類SubClass

package com.cc.accessright.demo;import com.cc.accessright.SupClass;
/*** * @描述: 與父類不同包的子類* @版權: Copyright (c) 2019 * @作者: cc* @版本: 1.0 * @創建日期: 2019年5月28日 * @創建時間: 上午11:01:28*/
public class SubClass extends SupClass
{public static void main(String[] args){SupClass supClass = new SupClass();supClass.publicMethod();//子類通過父類對象能訪問父類的public成員,其他訪問級別的成員不能訪問}public void subClassMethod1(){//子類可以直接訪問父類的public、protected,其他訪問級別的成員不能訪問publicMethod();protectedMethod();}
}

同包的類PackageClass

package com.cc.accessright;
/*** * @描述: 同包的類* @版權: Copyright (c) 2019 * @作者: cc* @版本: 1.0 * @創建日期: 2019年5月28日 * @創建時間: 上午11:04:14*/
public class PackageClass
{public static void main(String[] args){//通過對象訪問public、protected和default方法,不能訪問private級別的成員SupClass supClass = new SupClass();supClass.publicMethod();supClass.protectedMethod();supClass.defaultMethod();}}

其他

外部類訪問權限只能是public或者default,但一個Java文件最多只能有一個public修飾的類,且文件名必須跟public修飾的類類名相同。當Java文件不存在public修飾的類時,文件名可以隨意取。

接口的成員變量只能是public static final修飾的(可以省略),成員方法不同的JDK版本有差異:JDK1.6實測:成員方法只能是public abstract修飾的(可以省略);JDK1.8實測:?成員方法只能是public修飾的(可以省略),另外還可以使用abstract, default, static和strictfp來修飾,其中abstract,default,static互斥,使用default或者static時必須提供方法的實現,strictfp不能單獨使用,要配合default或者static一起使用。

重寫或者實現方法時,訪問權限必須比父類大。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/530422.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/530422.shtml
英文地址,請注明出處:http://en.pswp.cn/news/530422.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Oracle存儲過程

什么是存儲過程 存儲過程是一組為了完成特定功能的SQL語句,經編譯后存在數據庫,存儲過程是數據庫中的一個重要對象。 ps:有人說:任何一個設計良好的數據庫應用程序都應該用到存儲過程,我覺得這個不一定,其實很多互聯…

解決debug JDK source無法查看局部變量的問題

首先進入傳送門:https://blog.csdn.net/majian_1987/article/details/51273609 進行上面的操作之后,這個時候我們來debug一下jdk源碼,發現可以查看局部變量。但是這時候又發現一個問題,在我自己的代碼里按住ctrl鼠標左鍵單擊無法…

【JAVA基礎篇】多線程

學習Java的多線程知識之前,我們先來了解一下進程和線程的概念,以及他們之間的關系。 進程 基本概念 進程是具有獨立功能的程序在某個數據集合上的一次執行過程。 特點 進程是操作系統進行資源分配的基本單位。每個進程都有自己的地址空間&#xff0…

配置JAVA開發環境

1、首先去Oracle官方網站下載所需版本的JDKhttp://java.sun.com/products/archive/,然后安裝,其實只需要安裝jdk就可以了,不需要安裝jre 2、按照后配置環境變量JAVA_HOME 然后在path最前面添加%JAVA_HOME%\bin; 3、cmd中輸入java -version,提…

【JAVA基礎篇】枚舉

/*** 一組相同類型的常量的集合* author cc**/ public class EnumDemo {public static void main(String[] args) {//遍歷for(WorkDay workDay:WorkDay.values()){System.out.println("序號:"workDay.ordinal());//ordinal,返回枚舉常量的序號…

【JAVA基礎篇】集合框架

一、集合框架圖 Java集合框架主要包含兩種類型的容器,一是集合(Collection),存儲元素集合,二是圖(Map),存儲鍵(key)-值(value)對.Collection接口下面有兩個重要的子接口List和Set,再下面是一些抽象類,最后是…

【JAVA基礎篇】對象初始化過程

我們都知道,創建對象是由 new關鍵字調用構造方法 返回類實例(實際上還可以通過反射來創建實例)。 例如 : Person jack new Person(); 這句話到底做了什么事情呢 ? 其實就是講對象的初始化過程。 1、 new 用到了Person.class,所…

【Java基礎篇】try catch finally語句包含return語句時的執行過程

網上有很多人探討Java中異常捕獲機制try…catch…finally塊中的finally語句是不是一定會被執行? 很多人都說不是,當然他們的回答是正確的,經過我試驗,至少有兩種情況下finally語句是不會被 try語句沒有被執行到,如在…

eclipse指定JDK版本啟動,解決version XXX of the JVM is not suitable for this product.Version:XXX 問題

問題描述:啟動eclipse時,提示version 1.7.0 of the JVM is not suitable for this product.Version:1.8 or greater is required. 原因分析:原因是我的筆記本安裝了多個JDK版本,但是現在我的JAVA_HOME配置的是jdk1.7的路徑&#x…

【JAVA基礎篇】Socket編程

一、Socket的概念 Socket是一種通訊機制,通常稱為套接字。英文原意是插座,顧明思義,Socket像是一個多孔插座,可以提供多個端口的連接服務 ps:至于socket在計算機術語中怎么就翻譯成了“套接字”這個令人費解的詞,這真…

【JAVA基礎篇】注解

一、什么是注解? 注解是元數據,所謂元數據就是描述數據的數據。 在annotation誕生之前(jdk1.5誕生了注解),甚至之后,xml被廣泛的由于描述元數據。但是后來,有一些應用開發工程師和架構師覺得它…

【JAVA基礎篇】IO流

一、流的概念 “對語言設計人員來說,創建好的輸入/輸出系統是一項特別困難的任務。” ――《Think in Java》 無論是系統、還是語言的設計中IO的設計都是異常復雜的。面臨的最大的挑戰一般是如何覆蓋所有可能的因素,我們不僅僅要考慮文件、…

SpringMVC注解

一,RequestMapping 可以用在類和方法上 1.1 作用: 將客戶端請求映射到可匹配的類和方法中 1.2 屬性: name 給映射指定一個名字 path(同value相同) 請求的url,path{"/mixedAttribute1","/mixedA…

【JAVA基礎篇】運算符

一、表達式 表達式由運算符和操作數組成 例如: 5 num1 num1num2 sumnum1num2 二、運算符分類 算數運算符、賦值運算符、關系運算符、邏輯運算符、條件運算符、位運算符 三、算數運算符 四、賦值運算符 格式:變量表達式 例如:int n3…

a4紙網頁打印 table_打印模板不愁人,你還在打印單調的A4紙嗎?

軟件介紹早在幾年前,社會上就已經開始了數字化、無紙化的推廣,但是就算再怎么無紙化,紙張還是有它必要的存在,在工作、學習過程中,打印的需求也必不可少的。但是一般的打印都是比較平庸的,要做會議記錄&…

IP地址、子網掩碼、網關、默認網關、DNS的理解

IP地址 Internet上為了區分數以億計的主機而給每個主機分配一個專門的地址,通過IP地址可以訪問到每臺主機。 子網掩碼 子網掩碼又稱網絡掩碼、地址掩碼、子網絡遮罩。它是用來指明一個IP地址哪些位標識的是主機所在的子網,以及哪些位標識的是主機的位…

上證指數30年k線圖_技術預判2020:上證指數要突破3500點才會“井噴”

2019年的行情很快就要收官了,截止目前,上證指數今年的漲幅是20.5%,不過可能有部分投資者今年的收益率還沒達到大盤指數的平均水平。不管怎樣,今年很快就要翻篇了,關鍵是看2020年股市能不能迎來更好的行情了。而總結得失…

【JAVA基礎篇】基本數據類型及自動類型轉換

一、8種基本數據類型以及占用內存空間大小 boolean 1byte或4byte byte 8bit/1byte char 16bit/2byte short 16bit/2byte float 32bit/4byte int 32bit/4byte long 64bit/8byte double 64bit/8byte 二、自動類型轉換 …

的優缺點_淺談桉木家具的優缺點

家具現在的材質是有很多的,木質的,石材的,還有真空充氣的,都是很不錯的類型。桉木家具是現在很多人都喜歡的一種材質,但是很多人對桉木家具的優缺點不是很清楚,為了能夠讓大家更加清楚的了解桉木家具&#…

【算法篇】遞歸

一、遞歸的概念 程序調用自身的編程技巧稱為遞歸。 遞歸的核心思想就是將一個大規模復雜的問題層層轉化為一個與原問題相似的規模較小的問題來求解。 二、遞歸的優點 使用遞歸的好處是只需要少量的代碼就可以描述出求解問題過程中多次重復的計算,大大減少了程序…