## 內部類
### 1、定義
把一個類定義在某個類中的,這個類就被稱為內部類,內置類,嵌套類。
### 2、訪問特點:
A:內部類可以直接訪問外部類中的成員,因為內部類持有外部類的引用,
格式為:外部類名.this
B:外部類要想訪問內部類的成員,必須創建對象訪問。
### 3、內部類的訪問格式:
A:當內部類定義在外部類的成員位置,而且非私有,則可以在其他外部類中直接建立內部類對象
格式:外部類名.內部類名 變量名 = new 外部類對象.內部類對象
如:Outer.Inner in = new Outer().new Inner()
B:當內部類在外部類成員位置,且被static修飾時
**外部其他類可直接訪問靜態內部類的非靜態成員
格式:new 外部類名.內部類名().內部類成員
如:new Outer.Inner().function();
**外部其他類可直接訪問靜態內部類的靜態成員
格式:new 外部類名.內部類名.內部類成員
如:new Outer.Inner.function();
### 4、什么使用時候內部類呢?
* 假如有A類和B類,A類想直接訪問B類的成員,B類訪問A類成員的時候,
需要創建A類對象進行訪問,這個時候,就可以把A類定義為B類的內部類。
### 5、內部類的位置
A:成員位置
**可以被private修飾(Body,Heart)
**可以被static修飾。(它訪問的外部類的成員必須是靜態的)
B:局部位置
**可以直接訪問外部類中的成員,因為還持有外部類的持用
也可以直接訪問局部成員,但是局部成員要用final修飾。
注意:局部內部類不能用private和static修飾
### 6、通過class文件我們就可以區分是否帶有內部類,以及內部類的位置
Outer$Inner:成員內部類
Outer$1Inner:局部內部類
- JAVA筆記
- 01、Java掃盲
- 1、JVM、JRE和JDK的區別
- 2、環境變量path和classpath的作用是什么?
- 3、變量有什么用?為什么要定義變量?什么時候用?
- 4、&和&&的區別?
- 5、標示符命名規則
- 6、數據類型
- 7、類型轉換
- 8、java語言的三種技術架構
- 9、java的跨平臺性
- 10、有符號數據的表示法(次重點)
- 11、按位運算符
- 12、函數
- 13、重載
- 14、數組
- 15、內存結構
- 一、數據結構
- 隨機數
- 流程控制語句
- if 和 if...else
- switch
- for
- 函數
- 重載
- 數組
- 數組的復制
- 冒泡排序法算法
- 方法
- 方法的重載
- 方法的練習
- 面向對象
- 面向對象的特點
- 如何創建類
- 如何創建對象
- 一、引用數據類型具有的默認值
- 二、成員變量和局部變量
- 三、構造函數
- 四、氣球理論
- 五、繼承(extends)
- 權限修飾符
- 封裝
- 內存的分配
- 多態
- super關鍵字
- static關鍵字
- final關鍵字
- 抽象類 抽象方法(abstract)
- 接口(interface)
- 單例模式(singleton)
- Object類
- 內部類
- 匿名內部類
- 階段項目
- 捕魚達人
- 飛機大戰
- 護盾功能
- 血條
- 爆炸
- API
- String 類相關的方法
- 第三方(Apache)jar包的使用
- 正則表達式
- StringBuffer 和StringBuilder 和Date
- 核心API:集合類
- List 集合
- 遍歷集合的方式
- 包裝類
- Map 集合
- 異常