Java訪問修飾符原理及代碼解析
一、概述
訪問等級(jí)比較:public > protected > default > private
無論是方法還是成員變量,這四種訪問權(quán)限修飾符作用都一樣
- public:不管包外包內(nèi),所有類(子類+非子類)均可使用
- protected
- 包內(nèi):所有類可使用
- 包外:子類可使用,非子類不可使用
- default
- 包內(nèi):所有類可使用
- 包外:所有類不可使用
- private:僅本類可使用
二、示例代碼
Test包內(nèi)的父類Permission
public class Permission {
private int privateValue = 1;
public int publicValue = 1;
protected int protectedValue = 1;
int defaultValue = 1;
void defaultFunc(){
System.out.println("This is a default function");
}
public void publicFunc(){
System.out.println("This is a public function");
}
protected void protectedFunc() {
System.out.println("This is a protected function");
}
private void privateFunc(){
System.out.println("This is a private function");
}
}
Test包內(nèi)的子類SubPermission
public class SubPermission extends Permission{
public void permissionTest(){
// public, protected, default function and variable can be used
System.out.println("this is a default value:" + this.defaultValue);
System.out.println("this is a public value:" + this.publicValue);
System.out.println("this is a protected value:" + this.protectedValue);
this.publicFunc();
this.protectedFunc();
this.defaultFunc();
}
}
Test包外的子類
import base.Test.Permission;
public class Demo extends Permission {
public static void main(String[] args) {
// if is not a subclass, only public function and variable can be used
Permission obj = new Permission();
obj.publicFunc();
System.out.println("this is a public value:" + obj.publicValue);
// if is a subclass, public and protected function and variable can ba used
Demo demo = new Demo();
demo.publicFunc();
demo.protectedFunc();
System.out.println("this is a public value:" + demo.publicValue);
System.out.println("this is a protected value:" + demo.protectedValue);
}
}
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
SpringMVC框架實(shí)現(xiàn)Handler處理器的三種寫法
這篇文章主要介紹了SpringMVC框架實(shí)現(xiàn)Handler處理器的三種寫法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-02-02
java實(shí)現(xiàn)圖片角度旋轉(zhuǎn)并獲得圖片信息
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)圖片角度旋轉(zhuǎn)并獲得圖片信息,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-02-02
spring aop實(shí)現(xiàn)用戶權(quán)限管理的示例
本篇文章主要介紹了spring aop實(shí)現(xiàn)用戶權(quán)限管理的示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-12-12
基于SpringAop中JoinPoint對(duì)象的使用說明
這篇文章主要介紹了基于SpringAop中JoinPoint對(duì)象的使用說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06
Java中使用Java?Mail實(shí)現(xiàn)郵件服務(wù)功能示例
這篇文章主要介紹了Java中使用Java?Mail實(shí)現(xiàn)郵件服務(wù)功能的相關(guān)資料,文章還提供了一個(gè)發(fā)送郵件的示例代碼,包括創(chuàng)建參數(shù)類、郵件類和執(zhí)行結(jié)果,需要的朋友可以參考下2025-01-01
Java中String和StringBuffer及StringBuilder?有什么區(qū)別
這篇文章主要介紹了Java中String和StringBuffer及StringBuilder?有什么區(qū)別,String?是?Java?語言非?;A(chǔ)和重要的類,更多相關(guān)內(nèi)容需要的小伙伴可以參考下面文章內(nèi)容2022-06-06
Java的Hibernate框架中集合類數(shù)據(jù)結(jié)構(gòu)的映射編寫教程
Hibernate可以將Java中幾個(gè)內(nèi)置的集合結(jié)構(gòu)映射為數(shù)據(jù)庫使用的關(guān)系模型,下面我們就來看一下Java的Hibernate框架中集合類數(shù)據(jù)結(jié)構(gòu)的映射編寫教程:2016-07-07
SpringBoot使用WebSocket實(shí)現(xiàn)向前端推送消息功能
WebSocket協(xié)議是基于TCP的一種新的網(wǎng)絡(luò)協(xié)議,它實(shí)現(xiàn)了瀏覽器與服務(wù)器全雙工(full-duplex)通信——允許服務(wù)器主動(dòng)發(fā)送信息給客戶端,本文給大家介紹了SpringBoot使用WebSocket實(shí)現(xiàn)向前端推送消息功能,需要的朋友可以參考下2024-05-05

