內部類
package org.example;
/**
* 內部類
* 1. Java中允許將一個類A宣告在另一個類B中,則類A就是內部類,類B被成為外部類。
* <p>
* 2. 內部類的分類:成員內部類(靜態、非靜態)、區域性內部類(方法內、程式碼塊內、構造器內)
* <p>
* 3. 成員內部類:
* 一方面,作為外部類的成員:
* >呼叫外部類的結構 OuterClass.this.屬性或方法;OutClass.this. 預設省略
* >可以用static來修飾
* >可以被四種不同的許可權修飾符修飾
* <p>
* 另一方面,作為一個類:
* >類內可以定義屬性、方法、構造器、程式碼塊、內部類
* >可以繼承
* >可以被final修飾
* >可以被abstract修飾
* 4.關注如下三個問題
* 4.1 如何例項化成員內部類的物件
* 4.2 如何在成員內部類中區分呼叫外部類的結構
* 4.3 開發中區域性內部類的使用 (略)
*/
public class InnerClassTest {
//建立Leg例項(靜態成員內部類的建立)
Person.Leg leg = new Person.Leg();
//建立Brain例項(非靜態成員內部類的建立)
//方法1
Person p = new Person();
Person.Brain brain = p.new Brain();
//方法2
Person.Brain b2 = new Person().new Brain();
}
class Person {
String name;
class Brain {
//非靜態內部類不可以擁有靜態屬性,靜態方法
public String name;
public Brain() {
}
public void method3() {
//呼叫外部類的屬性
String a = Person.this.name;
//呼叫外部類的方法
method();
}
class EE {
}
{
}
}
static class Leg {
void method4() {
//呼叫外部類的靜態方法,不可呼叫外部類的非靜態方法
method2();
}
}
public void method() {
//區域性內部類
class AA {
}
}
public Person() {
//區域性內部類
class BB {
}
}
{
//區域性內部類
class CC {
}
}
public static void method2() {
//區域性內部類
class DD {
}
}
static {
//區域性內部類
class EE {
}
}
}
相關文章
- java內部類,區域性內部類,靜態內部類,匿名內部類Java
- 10-Java內部類——成員內部類、區域性內部類、匿名內部類Java
- 內部類與靜態內部類
- Java內部類詳解--匿名內部類Java
- java內部類,為什麼需要內部類?Java
- Java內部類詳解-- 成員內部類Java
- Java內部類詳解--區域性內部類Java
- Java 內部類Java
- 匿名內部類
- Java內部類Java
- 內部類與外部類
- 內部類是什麼?匿名內部類又是什麼?
- Java基礎內部類4-內部類進階Java
- Java中的匿名內部類及內部類的二三事Java
- Java類與匿名內部類Java
- 匿名內部類理解
- 內部類解說
- 泛型,內部類泛型
- 內部類,Object,字串Object字串
- 10、Java——內部類Java
- Java-InnerClass內部類Java
- java中的內部類Java
- Java 內部類詳解Java
- 匿名內部類的使用
- 閉包與內部類
- 淺談java內部類Java
- 區域性內部類
- 靜態內部類 呼叫
- Java內部類詳解Java
- Java 的抽象類, 介面以及內部類Java抽象
- java培訓教程:什麼是匿名內部類?怎樣建立匿名內部類?Java
- Java 內部類使用詳解Java
- 物件導向之內部類物件
- Java 內部類與閉包Java
- Java基礎-內部類詳解Java
- Java中內部類的騷操作Java
- Java內部類你真的會嗎?Java
- 淺談Java中的內部類Java