国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

java基礎(chǔ)知識(shí)——21.內(nèi)部類

這篇具有很好參考價(jià)值的文章主要介紹了java基礎(chǔ)知識(shí)——21.內(nèi)部類。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

這篇文章,我們來介紹一下java的內(nèi)部類知識(shí)

目錄

1.內(nèi)部類介紹

1.1內(nèi)部類的應(yīng)用場(chǎng)景

1.2 小結(jié)

2.成員內(nèi)部類

2.1 成員內(nèi)部類的書寫

2.2 創(chuàng)建成員內(nèi)部類的對(duì)象

2.3 成員內(nèi)部類獲取外部類的成員變量

3.靜態(tài)內(nèi)部類

4.局部內(nèi)部類

5.匿名內(nèi)部類

6.總結(jié)


1.內(nèi)部類介紹

首先,我們來介紹一下,什么是內(nèi)部類。

類的五大成員:屬性,方法,構(gòu)造方法,代碼塊,內(nèi)部類

內(nèi)部類:就是在一個(gè)類的里面再定義一個(gè)其他的類,這個(gè)再定義的其他類,我們就稱為內(nèi)部類。

代碼演示如下圖:

java基礎(chǔ)知識(shí)——21.內(nèi)部類

解釋:我們有一個(gè)類Outer,然后在Outer內(nèi)部有一個(gè)類Inner,那么這個(gè)Inner類就是一個(gè)內(nèi)部類。

內(nèi)部類的分類:

  • 成員內(nèi)部類
  • 靜態(tài)內(nèi)部類
  • 局部內(nèi)部類
  • 匿名內(nèi)部類

1.1內(nèi)部類的應(yīng)用場(chǎng)景

內(nèi)部類也是有應(yīng)用場(chǎng)景的。下面,我們通過具體的例子來看一下內(nèi)部類的應(yīng)用場(chǎng)景

例:

需求:寫一個(gè)Javabean類來描述汽車

屬性:汽車的品牌,車齡,顏色,發(fā)動(dòng)機(jī)的品牌,使用年限

思考:我們可以創(chuàng)建一個(gè)汽車類,里面寫那些所有的屬性,但是有點(diǎn)不合適,因?yàn)榘l(fā)動(dòng)機(jī)是一個(gè)獨(dú)立的個(gè)體,它和車有關(guān)系,但不屬于車。那如果我們創(chuàng)建一個(gè)單獨(dú)的類,用這個(gè)類來寫發(fā)動(dòng)機(jī),也不合適,因?yàn)榘l(fā)動(dòng)機(jī)和車是有關(guān)系的,單獨(dú)的把發(fā)動(dòng)機(jī)拿出來,也沒什么意義。這時(shí),我們就可以使用內(nèi)部類。

所以類的創(chuàng)建如下:?

java基礎(chǔ)知識(shí)——21.內(nèi)部類

注意:

  • 內(nèi)部類表示的事物是外部類的一部分
  • 內(nèi)部類單獨(dú)出現(xiàn)沒有任何意義

內(nèi)部類的訪問特點(diǎn):

  • 內(nèi)部類可以直接訪問外部類的成員,包括私有
  • 外部類要訪問內(nèi)部類的成員,必須創(chuàng)建對(duì)象

1.2 小結(jié)

什么是內(nèi)部類?寫在一個(gè)類里面的類是內(nèi)部類

什么時(shí)候用到內(nèi)部類?B類表示的事物是A類的一部分,且B單獨(dú)存在沒有意義

2.成員內(nèi)部類

下面,我們來介紹一下成員內(nèi)部類

成員內(nèi)部類:寫在成員位置的,屬于外部類的成員

2.1 成員內(nèi)部類的書寫

成員內(nèi)部類和類的成員屬性是同一級(jí)別的,都是寫在成員位置的。

成員內(nèi)部類可以被一些修飾符所修飾,比如private,默認(rèn),protected,public,static等,并且這些規(guī)則和之前是一樣的。說白了,你可以把成員內(nèi)部類當(dāng)成一個(gè)成員變量看待

被private修飾:在外界不能直接創(chuàng)建成員內(nèi)部類的對(duì)象,只能外部類里面創(chuàng)建它

被默認(rèn)修飾:在本包當(dāng)中用

被protected修飾:在本包中的其他類中使用,或者是其他包的子類中使用

被public修飾:在所有地方都可以使用

被static修飾:此時(shí)稱為靜態(tài)內(nèi)部類,后面會(huì)講

注意:在成員內(nèi)部類的里面,在JDK16之前不能定義靜態(tài)變量,JDK16開始才可以定義靜態(tài)變量

2.2 創(chuàng)建成員內(nèi)部類的對(duì)象

有兩種方式

方式一:在外部類中編寫方法,對(duì)外提供內(nèi)部類的對(duì)象

演示如下:

java基礎(chǔ)知識(shí)——21.內(nèi)部類

?

方式二:直接創(chuàng)建格式:外部類名.內(nèi)部類名 對(duì)象名 = 外部類對(duì)象.內(nèi)部類對(duì)象

演示如下:

java基礎(chǔ)知識(shí)——21.內(nèi)部類

?

2.3 成員內(nèi)部類獲取外部類的成員變量

下面,我們通過一個(gè)案例來說明內(nèi)部類獲取外部類的成員變量

java基礎(chǔ)知識(shí)——21.內(nèi)部類

結(jié)果如下圖所示:

java基礎(chǔ)知識(shí)——21.內(nèi)部類

解析:其實(shí)還是基礎(chǔ)要過關(guān)。方法內(nèi)部有a,你要打印它,就是直接調(diào)用它,因?yàn)檫@個(gè)a的作用范圍就是這個(gè)方法,然后是內(nèi)部類,內(nèi)部類的a的作用范圍是內(nèi)部類,用this關(guān)鍵字,this關(guān)鍵字你就可以把它理解為執(zhí)行本類的一個(gè)對(duì)象。然后是外部類的a,那就調(diào)用外部類的對(duì)象,就要外部類點(diǎn)出this來使用。就這,就是基礎(chǔ)的內(nèi)容,基礎(chǔ)要過關(guān)。

3.靜態(tài)內(nèi)部類

靜態(tài)內(nèi)部類是成員內(nèi)部類的一種,是被static修飾的成員內(nèi)部類。

靜態(tài)內(nèi)部類只能訪問外部類中的靜態(tài)變量和靜態(tài)方法,如果想要訪問非靜態(tài)的需要?jiǎng)?chuàng)建外部類的對(duì)象。

解析:在講靜態(tài)的時(shí)候說過,靜態(tài)只能訪問靜態(tài),如果想訪問非靜態(tài),那就創(chuàng)建對(duì)象來調(diào)用。

創(chuàng)建靜態(tài)內(nèi)部類對(duì)象的格式:

外部類名.內(nèi)部類名 對(duì)象名 = new 外部類名.內(nèi)部類名();

注意:因?yàn)槭庆o態(tài)的,所以可以通過類去調(diào)用,而不用通過對(duì)象去調(diào)用

調(diào)用非靜態(tài)方法的格式:先創(chuàng)建對(duì)象,用對(duì)象調(diào)用

調(diào)用靜態(tài)方法的格式:外部類名.內(nèi)部類名.方法名();

代碼演示:

java基礎(chǔ)知識(shí)——21.內(nèi)部類

結(jié)果:

java基礎(chǔ)知識(shí)——21.內(nèi)部類?

4.局部內(nèi)部類

下面介紹一下局部內(nèi)部類:

  1. 將內(nèi)部類定義在方法里面就叫做局部內(nèi)部類,類似于方法里面的局部變量
  2. 外界是無法直接使用的,需要在方法內(nèi)部創(chuàng)建對(duì)象并使用
  3. 該類可以直接訪問外部類的成員,也可以訪問方法內(nèi)的局部變量

代碼演示:

java基礎(chǔ)知識(shí)——21.內(nèi)部類

有點(diǎn)繞,但是不難,可以多理解理解

5.匿名內(nèi)部類

匿名內(nèi)部類本質(zhì)是就是隱藏了名字(或者說沒有名字)的內(nèi)部類。

它的格式如下

????????new 類名或接口名(){

? ? ? ????????? 重寫方法;

????????}

它里面包括了三部分內(nèi)容:繼承/實(shí)現(xiàn),方法重寫,創(chuàng)建對(duì)象

具體演示:

java基礎(chǔ)知識(shí)——21.內(nèi)部類

結(jié)果:

java基礎(chǔ)知識(shí)——21.內(nèi)部類?

匿名內(nèi)部類的使用場(chǎng)景

當(dāng)方法的參數(shù)是接口或者類時(shí),以接口為例,可以傳遞這個(gè)接口的實(shí)現(xiàn)類對(duì)象,如果實(shí)現(xiàn)類只要使用一次,就可以用匿名內(nèi)部類。

6.總結(jié)

這篇文章主要講了一下各種內(nèi)部的使用情況。說白了,還是要有封裝思想,當(dāng)內(nèi)部類出現(xiàn)在不同位置時(shí),不要把它當(dāng)做類,就把它當(dāng)做與它同級(jí)的一個(gè)事務(wù)來看,這樣就簡單很多了。除此之外,我們還要十分熟悉前面的基礎(chǔ)知識(shí),只有這樣,我們學(xué)習(xí)新知識(shí),解決問題時(shí),才能更加的游刃有余。文章來源地址http://www.zghlxwxcb.cn/news/detail-404042.html

到了這里,關(guān)于java基礎(chǔ)知識(shí)——21.內(nèi)部類的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Python常用基礎(chǔ)語法知識(shí)點(diǎn)大全合集,看完這一篇文章就夠了

    Python 是一門獨(dú)特的語言,快速瀏覽一下他的要點(diǎn): 面向?qū)ο螅好恳粋€(gè)變量都是一個(gè)類,有其自己的屬性(attribute)與方法(method)。 語法塊:用縮進(jìn)(四個(gè)空格)而不是分號(hào)、花括號(hào)等符號(hào)來標(biāo)記。因此,行首的空格不能隨意書寫。 注釋:行內(nèi)用“#”號(hào),行間注釋寫在兩

    2023年04月22日
    瀏覽(32)
  • 【MySQL速通篇004】這可能最詳細(xì)的關(guān)于MySQL基礎(chǔ)知識(shí)點(diǎn)的文章了

    【MySQL速通篇004】這可能最詳細(xì)的關(guān)于MySQL基礎(chǔ)知識(shí)點(diǎn)的文章了

    ? ?? 作 者 主 頁 : CSDN丨博客園 ?? 學(xué) 習(xí) 交 流: 在下周周ovoの社區(qū) ?? 這篇8000多字的博客也是花了我比較久的時(shí)間,基本覆蓋很大一部分的MySQL知識(shí)點(diǎn),可以說是非常的詳細(xì),感謝各位的支持,對(duì)于文章中的一些語法,概念,例子等錯(cuò)誤,歡迎并感謝各位讀者的指出 文

    2024年02月05日
    瀏覽(74)
  • 局部內(nèi)部類、匿名內(nèi)部類、私有內(nèi)部類

    有關(guān)于內(nèi)部類的講解,見此篇java內(nèi)部類的創(chuàng)建 。 下面分別將講解局部內(nèi)部類、匿名內(nèi)部類、私有內(nèi)部類。 可以在方法中定義內(nèi)部類,甚至在語句塊中也可以定義內(nèi)部類, 這種情況通常是某個(gè)方法需要?jiǎng)?chuàng)建一個(gè)類來輔助完成該方法的功能,而這個(gè)類只用在該方法中。 局部內(nèi)

    2023年04月22日
    瀏覽(22)
  • 【數(shù)字IC精品文章收錄】近500篇文章|學(xué)習(xí)路線|基礎(chǔ)知識(shí)|接口|總線|腳本語言|芯片求職|安全|EDA|工具|低功耗設(shè)計(jì)|Verilog|低功耗|STA|設(shè)計(jì)|驗(yàn)證|FPGA|架構(gòu)|AMBA|書籍|

    1.1 索引目的 本篇索引旨在 收藏CSDN全站中有關(guān)數(shù)字IC領(lǐng)域高價(jià)值文章 ,在數(shù)字芯片領(lǐng)域中,就算將架構(gòu),設(shè)計(jì),驗(yàn)證,DFT,后端諸多崗位加在一起的數(shù)量,都不及軟件類一個(gè)細(xì)分方向的崗位數(shù)量多,反映在社區(qū)氛圍或是開源資料的豐富度而言,數(shù)字IC領(lǐng)域相較于軟件/互聯(lián)網(wǎng)領(lǐng)

    2024年02月03日
    瀏覽(30)
  • JavaSE-----內(nèi)部類詳解(實(shí)例內(nèi)部類,局部內(nèi)部類,靜態(tài)內(nèi)部類,匿名內(nèi)部類)

    JavaSE-----內(nèi)部類詳解(實(shí)例內(nèi)部類,局部內(nèi)部類,靜態(tài)內(nèi)部類,匿名內(nèi)部類)

    ? ? 目錄 認(rèn)識(shí)內(nèi)部類: 一.實(shí)例內(nèi)部類: 二.局部內(nèi)部類: 三 匿名內(nèi)部類: ?四、靜態(tài)內(nèi)部類 小結(jié): ? ? ?? ??????什么是內(nèi)部類?官方解釋: Java內(nèi)部類是指在一個(gè)類的內(nèi)部定義的類。它可以訪問外部類的成員變量和方法,并且可以被外部類實(shí)例化。 ??????通俗的來

    2024年04月08日
    瀏覽(18)
  • Java入門基礎(chǔ)知識(shí)

    Java入門基礎(chǔ)知識(shí)

    JDK是Java工具開發(fā)包,包含了JVM(程序運(yùn)行環(huán)境),核心類庫(直接應(yīng)用即可),開發(fā)工具(Javac,java,jdb,jhat…) JRE是Java運(yùn)行環(huán)境,包含了JVM,核心類庫,運(yùn)行工具 JDK包含了JRE,JRE包含了jvm 全部小寫(有特定含義的英文字符) class 表示一個(gè)類 整數(shù)類型 小數(shù)類型 字符串類型 :只用\\\"雙引

    2024年02月09日
    瀏覽(92)
  • java基礎(chǔ)知識(shí)

    java基礎(chǔ)知識(shí)

    java的數(shù)據(jù)結(jié)構(gòu)有哪些? 線性結(jié)構(gòu):數(shù)組、鏈表、哈希表;隊(duì)列、棧 非線性結(jié)構(gòu)有:堆、樹(二叉樹、B樹、B+樹、紅黑樹) 圖 常用的集合類有List集合,Set集合,Map集合,其中List集合與Set集合繼承了Collection接口, List 有序可重復(fù)的集合接口,繼承自Collection接口,表示元素按照插入順

    2024年02月06日
    瀏覽(99)
  • java基礎(chǔ)知識(shí)梳理

    雖然已經(jīng)在實(shí)際工作中與java打交道5年之多,但是一直沒系統(tǒng)地對(duì)java這門語言進(jìn)行梳理和總結(jié),掌握的知識(shí)也比較零散。恰好利用這段時(shí)間重新認(rèn)識(shí)下java,并對(duì)一些常見的語法和知識(shí)點(diǎn)做個(gè)總結(jié)與回顧,一方面為了加深印象,方便后面查閱,一方面為了學(xué)好java打下基礎(chǔ)。拉

    2024年02月04日
    瀏覽(103)
  • java基礎(chǔ)知識(shí)二

    1.1、基本概念 類是具有相同屬性和行為的一組對(duì)象的 集合 ,包含數(shù)據(jù)和操作,數(shù)據(jù)被稱為 成員變量 ,操作被稱為方法 對(duì)象是類的實(shí)例,即 對(duì)象 = 數(shù)據(jù) + 行為 或者 對(duì)象 = 狀態(tài) + 操作 類抽象的、概念上的定義,對(duì)象是一個(gè)具體的、實(shí)際存在的個(gè)體,即一個(gè)實(shí)例 1.2、類的特

    2024年02月07日
    瀏覽(97)
  • Java GC基礎(chǔ)知識(shí)

    在對(duì)象中添加一個(gè) 引用計(jì)數(shù)器 ,每當(dāng)有一個(gè)地方引用它時(shí),計(jì)數(shù)器值就加一;當(dāng)引用失效時(shí),計(jì)數(shù)器值就減一;任何時(shí)刻計(jì)數(shù)器為零的對(duì)象就是不可 能再被使用的 引用計(jì)數(shù)法的缺陷: 如果使用 引用計(jì)數(shù)法 , objA 和 objB 除互相引用外沒有任何其他引用,但是無法被回收。

    2023年04月13日
    瀏覽(89)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包