成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

面試官:什么是內部類?這么回答就妥妥的

開發 前端
為什么內部類能訪問外部類的成員(靜態內部類是不依賴于外部類的,也就說可以在不創建外部類對象的情況下創建內部類的對象 )。另外也可以得出一個結論就是:成員內部類依賴于外部類,必須是外部類想創建好對象,內部類才可以創建對象。

 [[355422]]

本文內容

什么是內部類?

我們將一個類A定義在另外一個類B中,那么這個類A就叫內部類。

為什么需要內部類呢?

有三點原因:

內部類方法可以訪問該類定義的所在的作用域中的數據,包括私有的數據。

內部類可以對同一個包中的其他類隱藏起來。

當想要定義一個回調函數且不想編寫大量代碼時,使用匿名內部類比較方便。

內部類有什么特性?

內部類可以用多個實例,每個實例都有自己的狀態信息,并且與其他外圍對象的信息相互獨立。

在單個外圍類中,可以讓多個內部類以不同的方式實現同一個接口,或者繼承同一個類。

創建內部類對象的時刻并不依賴于外圍類對象的創建。

內部類并沒有令人迷惑的“is-a”關系,他就是一個獨立的實體。

內部類提供了更好的封裝,除了該外圍類,其他類都不能訪問。

來自《Think in java》

內部類有哪些種類?

成員內部類:和成員變量一個級別

局部內部類:在方法里的內部類

匿名內部類:基本上屬于接口的實現類,一次性使用的場景。

靜態內部類:static修飾的成員內部類

如何使用內部類?

創建靜態內部類對象的一般形式為:

外部類類名.內部類類名 xxx = new 外部類類名.內部類類名()

創建成員內部類對象的一般形式為:

外部類類名.內部類類名 xxx = 外部類對象名.new 內部類類名()

上面就是做一個簡單的回答,如果面試還可能會繼續問,那就得繼續往下看。

這是一個黃金分割點,以上這部分是初級面試題。

面試回答:

常見高級面試題

為什么成員內部類可以無條件訪問外部類的成員?

解題思路:先寫個案例,證明是不是正確的,然后再深層次的去了解成員內部類和外部內的關系。

  1. public class OuterClass { 
  2.         class InnerClass{ 
  3.         } 
  4.     } 

代碼中InnerClass就是成員內部類。使用javac對OuterClass進行編譯,也可以在IDEA或者eclipse中進行編譯,編譯完后會發現居然有兩個.class文件。

  • 外部類:OuterClass.class
  • 成員內部類:OuterClass$InnerClass.class

使用javap 命令來查看這兩個class文件:

OuterClass.class內容為如下:

就是個簡單的類,沒什么不一樣的地方。我們主要還是看看內部類的這個.class文件內容是否有些特別。

OuterClass$InnerClass.class內容如下:

從上面的內容中我們可以看到四點:

1,定義了一個常量,指向外部類對象的地址。

2,內部類默認有個構造方法,有參數的,參數為外部類。

3,給成員變量1(this$0)賦值為外部類對象地址。

4,有兩個成員變量,一個是自己,另外一個是指向外部類對象地址的變量。

所以這里就證明了,為什么內部類能訪問外部類的成員(靜態內部類是不依賴于外部類的,也就說可以在不創建外部類對象的情況下創建內部類的對象 )。

另外也可以得出一個結論就是:成員內部類依賴于外部類,必須是外部類想創建好對象,內部類才可以創建對象。

總結

在面試的時候可能會遇到以下問題:

  • 什么是內部類?
  • 為什么需要內部類?
  • 內部類有什么特性?
  • 內部類的種類有哪些?
  • 為什么成員內部類可以無條件訪問外部類的成員?

希望大家在面試遇到以上問題時,能輕松應對。

本文轉載自微信公眾號「Java后端技術全棧」,可以通過以下二維碼關注。轉載本文請聯系Java后端技術全棧公眾號。 

 

責任編輯:武曉燕 來源: Java后端技術全棧
相關推薦

2022-07-17 06:54:51

Eureka架構

2018-10-16 09:43:26

負載均衡TCPHTTP

2018-12-06 09:41:12

持續集成軟件

2021-07-08 10:04:36

人工智能AI主管

2019-05-30 14:05:35

固態硬盤協議?

2024-06-26 11:55:44

2022-11-04 08:47:52

底層算法數據

2021-09-07 10:44:33

Java 注解開發

2021-02-19 10:02:57

HTTPSJava安全

2024-02-22 15:36:23

Java內存模型線程

2021-12-08 06:53:29

面試動態代理

2022-09-29 07:30:57

數據庫索引字段

2021-10-22 08:37:13

消息不丟失rocketmq消息隊列

2022-09-13 14:44:40

HashMap哈希表紅黑樹

2023-12-06 09:10:28

JWT微服務

2019-05-14 08:44:13

面試面試官線程安全

2019-11-26 08:24:13

TCP擁塞控制網絡協議

2025-06-18 08:20:00

Redis數據庫線程
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 草草视频在线观看 | 最新日韩在线 | 久久99久久99| 欧美精三区欧美精三区 | 国产精品久久久久久久7777 | 国产欧美精品一区 | 亚洲人成人一区二区在线观看 | 国产精品日产欧美久久久久 | 999国产视频 | 一区二区三区四区免费视频 | 在线天堂免费中文字幕视频 | 久久精品二区亚洲w码 | 午夜欧美a级理论片915影院 | 亚洲一区 中文字幕 | 在线中文字幕视频 | 五月婷婷丁香 | 午夜精品久久久久久久久久久久 | 男人天堂免费在线 | 成人小视频在线观看 | 韩日一区二区三区 | 亚洲精品一区二区在线观看 | av午夜电影 | 欧美二区三区 | 亚洲欧美中文日韩在线v日本 | 午夜三区 | 日韩精品视频在线观看一区二区三区 | 一级视频黄色 | av资源中文在线 | 免费成年网站 | 一区二区免费 | 国产精品一区久久久 | 亚洲一区高清 | 日本精品久久久一区二区三区 | 国产一级片免费视频 | 综合国产第二页 | 国产一级一级毛片 | 成人影院在线观看 | 亚洲一区免费 | 在线一区二区三区 | 黄色毛片网站在线观看 | 中文在线一区二区 |