欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java基礎(chǔ)之內(nèi)部類與代理知識(shí)總結(jié)

 更新時(shí)間:2021年06月04日 15:15:06   作者:GDUT_Ember  
今天帶大家復(fù)習(xí)Java的基礎(chǔ)知識(shí),文中有非常詳細(xì)的介紹及圖文示例,對(duì)正在學(xué)習(xí)Java的小伙伴們很有幫助,需要的朋友可以參考下

一、內(nèi)部類

內(nèi)部類是指在另一個(gè)類中的類

  • 內(nèi)部類可以對(duì)同一個(gè)包中的所有類隱藏(權(quán)限改為private)
  • 內(nèi)部類方法可以訪問定義這個(gè)類的作用域中的數(shù)據(jù),包括原本私有的數(shù)據(jù)

注意:內(nèi)部類位于類的內(nèi)部,并不意味著類的實(shí)例都必須要有內(nèi)部類的實(shí)例

內(nèi)部類是可以訪問定義這個(gè)類的屬性的,因?yàn)?strong>內(nèi)部類的對(duì)象總有一個(gè)隱式引用,指向創(chuàng)建它的外部類對(duì)象

對(duì)于一般的類,只有包可見性和公共可見性(一個(gè)是缺省,另一個(gè)是public,沒有protected和private,protected一般對(duì)于外部類權(quán)限是沒多大用處的)

但對(duì)于內(nèi)部類,可以是所有類型,public、protected、default、private(因?yàn)槭莾?nèi)部類,外面還套著一個(gè)類,所以protected是有意義的)

1.1 創(chuàng)建內(nèi)部類

內(nèi)部類的new比較特殊,是建立在以實(shí)例化的外部類去執(zhí)行的(而且前提內(nèi)部類不為private)

在這里插入圖片描述

如果內(nèi)部類為private的話,對(duì)于外部是根本找不到這個(gè)類的,不可以去調(diào)用,而且只有外部類可以構(gòu)造內(nèi)部類的實(shí)例對(duì)象

1.2 內(nèi)部類調(diào)用外部類的變量

也是使用this關(guān)鍵字,不過為了區(qū)分this(區(qū)分是外部類還是內(nèi)部類),使用外部類的屬性時(shí),需要用:外部類名.this來(lái)操作

在這里插入圖片描述

二、局部?jī)?nèi)部類

如果一個(gè)類只要使用一次,可以直接在一個(gè)方法中局部地去定義這個(gè)類,更好地節(jié)約了空間

注意:局部?jī)?nèi)部類聲明時(shí)是不可以有訪問說明符的(public或者private),局部類的作用域被限定在聲明這個(gè)局部類的方法塊中,局部類最大的優(yōu)勢(shì)就是,對(duì)外部世界是完全隱藏的,甚至在本類也不可以訪問,也就是除了聲明局部類的方法塊中,沒有任何其他類或方法可以訪問局部類,知道其存在

在這里插入圖片描述

2.1 外部方法訪問變量

局部類的一個(gè)優(yōu)點(diǎn)就是局部類不僅可以訪問外部類的字段,還可以訪問方法里面的局部變量

在這里插入圖片描述

訪問的方法與內(nèi)部類是一致的

三、匿名內(nèi)部類

如果對(duì)于局部?jī)?nèi)部類使用時(shí),甚至不需要去定義匿名內(nèi)部類的名字,只是想單獨(dú)去創(chuàng)建對(duì)象,那么可以不用給其設(shè)置名字,稱為匿名內(nèi)部類

比如說,想要一個(gè)臨時(shí)的接口實(shí)現(xiàn)類

在這里插入圖片描述

當(dāng)然不一定是一個(gè)接口,也可以是一個(gè)類,如果是接口就要去實(shí)現(xiàn)里面的抽象方法,如果是類的話,就可以自定義去進(jìn)行拓展

在這里插入圖片描述

四、lambda表達(dá)式結(jié)合局部?jī)?nèi)部類

前面說過lambda表達(dá)式適用于函數(shù)式接口,所以我們也可以使用lambda表達(dá)式來(lái)實(shí)現(xiàn)局部?jī)?nèi)部類

當(dāng)然,lambda表達(dá)式生成的相當(dāng)于是一個(gè)參數(shù),所以要使用方法入?yún)?lái)調(diào)用

在這里插入圖片描述

lambda表達(dá)式使用一個(gè)空括號(hào)代表無(wú)參,所以建議,即使只有一個(gè)參數(shù),也放在括號(hào)里面

五、靜態(tài)內(nèi)部類

或許有的時(shí)候,只是想將內(nèi)部類隱藏起來(lái),并不需要內(nèi)部類擁有外部類的一個(gè)引用指針(即this),那么可以將內(nèi)部類用static關(guān)鍵字去修飾,這樣內(nèi)部類就不會(huì)有外部類的引用了(無(wú)法使用到外部類的方法和變量了),稱為靜態(tài)內(nèi)部類

六、代理

代理(proxy)是一種比較高級(jí)的計(jì)技術(shù)

利用代理可以在運(yùn)行時(shí)創(chuàng)建實(shí)現(xiàn)了一組給定接口的新類(在不知道要實(shí)現(xiàn)哪些接口時(shí))

到此這篇關(guān)于Java基礎(chǔ)之內(nèi)部類與代理知識(shí)總結(jié)的文章就介紹到這了,更多相關(guān)Java內(nèi)部類與代理內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 解決java.util.zip.ZipException: Not in GZIP format報(bào)錯(cuò)問題

    解決java.util.zip.ZipException: Not in GZIP&nbs

    這篇文章主要介紹了解決java.util.zip.ZipException: Not in GZIP format報(bào)錯(cuò)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • 淺談一下JVM垃圾回收算法

    淺談一下JVM垃圾回收算法

    這篇文章主要介紹了一下JVM垃圾回收算法,Java有著自己一套的內(nèi)存管理機(jī)制,不需要開發(fā)者去手動(dòng)釋放內(nèi)存,開發(fā)者只需要寫好代碼即可,運(yùn)行過程中產(chǎn)生的垃圾都由JVM回收,需要的朋友可以參考下
    2023-04-04
  • js判斷是否含有GBK以外的字符的函數(shù)

    js判斷是否含有GBK以外的字符的函數(shù)

    判斷是否含有GBK以外的特殊字符
    2008-10-10
  • SpringBoot中使用com.alibaba.druid.filter.config.ConfigTools對(duì)數(shù)據(jù)庫(kù)密碼加密的方法

    SpringBoot中使用com.alibaba.druid.filter.config.ConfigTools對(duì)數(shù)據(jù)庫(kù)

    這篇文章主要介紹了SpringBoot中使用com.alibaba.druid.filter.config.ConfigTools對(duì)數(shù)據(jù)庫(kù)密碼加密的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-01-01
  • SpringBoot上傳和下載文件的原理解析

    SpringBoot上傳和下載文件的原理解析

    文件上傳的功能很常見,但是很多人并不清楚文件上傳后的具體原理,接下來(lái)通過本文給大家分享SpringBoot上傳和下載文件的原理解析,感興趣的朋友一起看看吧
    2021-07-07
  • Spring Boot整合RabbitMQ開發(fā)實(shí)戰(zhàn)詳解

    Spring Boot整合RabbitMQ開發(fā)實(shí)戰(zhàn)詳解

    這篇文章主要介紹了Spring Boot整合RabbitMQ開發(fā)實(shí)戰(zhàn),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧
    2018-02-02
  • SpringCloud Gateway HttpWebHandlerAdapter鏈路調(diào)用請(qǐng)求流程介紹

    SpringCloud Gateway HttpWebHandlerAdapter鏈路調(diào)用請(qǐng)求流程介

    Spring Cloud Gateway旨在為微服務(wù)架構(gòu)提供一種簡(jiǎn)單有效的、統(tǒng)一的 API 路由管理方式。Spring Cloud Gateway 作為 Spring Cloud 生態(tài)系中的網(wǎng)關(guān),它不僅提供統(tǒng)一的路由方式,并且基于 Filter 鏈的方式提供了網(wǎng)關(guān)基本的功能,例如:安全、監(jiān)控/埋點(diǎn)和限流等
    2022-10-10
  • ChatGPT-4.0未來(lái)已來(lái) 你來(lái)不來(lái)

    ChatGPT-4.0未來(lái)已來(lái) 你來(lái)不來(lái)

    最近聽說了一個(gè)非?;鸬募夹g(shù)ChatGPT4.0,今天這篇文章就給大家介紹一下ChatGPT究竟是什么東東,不得不說ChatGPT是真的強(qiáng),下面就讓我們一起了解究竟什么是ChatGPT吧
    2023-03-03
  • Java超詳細(xì)分析講解哈希表

    Java超詳細(xì)分析講解哈希表

    哈希表是一種根據(jù)關(guān)鍵碼去尋找值的數(shù)據(jù)映射結(jié)構(gòu),該結(jié)構(gòu)通過把關(guān)鍵碼映射的位置去尋找存放值的地方,說起來(lái)可能感覺有點(diǎn)復(fù)雜,我想我舉個(gè)例子你就會(huì)明白了,最典型的的例子就是字典
    2022-06-06
  • 詳解Java中CountDownLatch異步轉(zhuǎn)同步工具類

    詳解Java中CountDownLatch異步轉(zhuǎn)同步工具類

    今天給大家?guī)?lái)的是關(guān)于Java的相關(guān)知識(shí),文章圍繞著CountDownLatch異步轉(zhuǎn)同步工具類展開,文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06

最新評(píng)論