Java作用域、訪問(wèn)修飾符詳解
Java作用域、訪問(wèn)修飾符詳解
Java中,作用域(Scope)指變量、方法或類(lèi)的可訪問(wèn)性和生命周期,即他們?cè)诖a中的可見(jiàn)范圍。作用域由聲明的位置和修飾符共同決定。
一、變量的作用域
變量有以下五種作用域類(lèi)型
| 作用域類(lèi)型 | 聲明位置 | 生命周期 | 訪問(wèn)范圍 |
| 實(shí)例變量 | 類(lèi)內(nèi),方法外 | 對(duì)象創(chuàng)建到銷(xiāo)毀 | 類(lèi)內(nèi)所有非靜態(tài)方法 |
| 靜態(tài)變量 | 類(lèi)內(nèi),方法外+static | 類(lèi)加載到程序結(jié)束 | 類(lèi)內(nèi)所有方法,其他類(lèi)通過(guò)類(lèi)名 |
| 局部變量 | 方法/構(gòu)造方法/塊內(nèi) | 方法/塊執(zhí)行期間 | 聲明處到方法/塊結(jié)束 |
| 塊變量 | 代碼塊內(nèi) | 塊執(zhí)行期間 | 塊內(nèi)部 |
| 方法參數(shù) | 方法參數(shù)列表 | 方法調(diào)用期間 | 整個(gè)方法體 |
二、方法的作用域
| 方法類(lèi)型 | 可訪問(wèn)成員 | 調(diào)用方式 | 修飾符限制 |
| 實(shí)例方法 | 實(shí)例變量、靜態(tài)變量、其他實(shí)例/靜態(tài)變量 | 對(duì)象名.方法名() | 無(wú)特殊限制 |
| 靜態(tài)方法 | 靜態(tài)變量、其他靜態(tài)變量 | 類(lèi)名.方法名() 或 對(duì)象名.方法名() | 不能直接訪問(wèn)實(shí)例成員 |
訪問(wèn)修飾符(Access Modifiers):
用于控制類(lèi)、變量、方法和構(gòu)造方法的可見(jiàn)性和訪問(wèn)范圍,是面向?qū)ο缶幊讨?*封裝性(Encapsulation)**的核心機(jī)制。
Java 提供了四種訪問(wèn)修飾符:
按訪問(wèn)范圍從寬到窄依次為:public > protected > 默認(rèn)(無(wú)修飾符) > private
| 修飾符 | 可見(jiàn)性范圍 | 典型用途 |
| public | 全局可見(jiàn) | 對(duì)外接口、工具類(lèi)、常量 |
| protected | 同一包、字類(lèi) | 允許子類(lèi)擴(kuò)展的受保護(hù)方法或變量 |
| default | 同一包 | 包內(nèi)共享的實(shí)現(xiàn)細(xì)節(jié) |
| private | 僅當(dāng)前類(lèi) | 隱藏內(nèi)部狀態(tài),強(qiáng)制通過(guò)方法訪問(wèn) |
注意事項(xiàng):
1、子類(lèi)重寫(xiě)父類(lèi)方法時(shí),訪問(wèn)權(quán)限不能比父類(lèi)范圍更小
2、構(gòu)造方法使用private修飾時(shí),就是單例模式的要求之一,即不允許外部實(shí)例化
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Spring Security OAuth2認(rèn)證授權(quán)示例詳解
這篇文章主要介紹了Spring Security OAuth2認(rèn)證授權(quán)示例詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09
Spring獲取當(dāng)前類(lèi)在容器中的beanname實(shí)現(xiàn)思路
這篇文章主要介紹了Spring獲取當(dāng)前類(lèi)在容器中的beanname,實(shí)現(xiàn)思路只需繼承BeanNameAware接口,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-07-07
簡(jiǎn)單實(shí)現(xiàn)Java版學(xué)生管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了簡(jiǎn)單實(shí)現(xiàn)Java版學(xué)生管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-06-06
SpringBoot多數(shù)據(jù)源配置并通過(guò)注解實(shí)現(xiàn)動(dòng)態(tài)切換數(shù)據(jù)源
本文主要介紹了SpringBoot多數(shù)據(jù)源配置并通過(guò)注解實(shí)現(xiàn)動(dòng)態(tài)切換數(shù)據(jù)源,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08
MybatisPlus中QueryWrapper常用方法總結(jié)
MyBatis-Plus是一個(gè)Mybatis增強(qiáng)版工具,在MyBatis上擴(kuò)充了其他功能沒(méi)有改變其基本功能,為了簡(jiǎn)化開(kāi)發(fā)提交效率而存在,queryWrapper是mybatis plus中實(shí)現(xiàn)查詢的對(duì)象封裝操作類(lèi),本文就給大家總結(jié)了MybatisPlus中QueryWrapper的常用方法,需要的朋友可以參考下2023-07-07

