java 局部内部类常用么_Java中的内部类
一、內部類概述
在一個類的內部定義一個類。在 A 類中定義 類 B。B 類就被叫做 A 的內部類。A 類就是 B 的外部類。
二、內部類的種類
內部類分為:成員內部類、靜態內部類、局部內部類、匿名內部類。
1、成員內部類
(1)定義
在一個類中定義一個類,這個類相當于另一個類的成員。
成員內部類中不可以有靜態成員和靜態方法。
public class Outer {
private String name;
public void out() {
System.out.println("這是外部類的方法");
}
class Inner {
public void in() {
System.out.println("這是內部類的方法");
}
}
}
(2)實例化
實例化成員內部類需要先初始化外部類,然后用外部類調用內部類,最后用外部類的實例實例化內部類。
// 1. 實例化外部類
Outer outObj = new Outer();
// 2. 用外部類調用內部類,用外部類的實例實例化內部類
Outer.Inner inner = outObj.new Inner();
// 3. 測試:調用內部類的方法
inner.in();
(3)成員內部類可以干什么
訪問外部類的所有屬性和方法。
public class Outer {
private String name;
public void out() {
System.out.println("這是外部類的方法");
}
class Inner {
public void in() {
System.out.println("這是內部類的方法");
// 訪問外部類屬性
System.out.println(name);
// 訪問外部類方法
out();
}
}
}
2、靜態內部類
(1)定義
使用 static 修飾的內部類就是靜態內部類。
(2)實例化
如何實例化靜態內部類:使用外部類調用靜態內部類就可以實例化靜態內部類。
public static void main(String[] args) {
// 創建靜態內部類對象
Outer.Inner inner = new Outer.Inner();
inner.in();
}
(3)靜態內部類可以干什么
靜態內部類不可以使用外部類非靜態的成員和非靜態的方法。
靜態內部類中可以聲明靜態成員和方法。
3、局部內部類
(1)定義
在一個方法中聲明一個類,就是局部內部類。
public class Outer1 {
private String name;
public void out() {
System.out.println("這是外部類");
}
public void method1() {
// 局部內部類
class Inner {
public void in() {
System.out.println("這是局部內部類");
// 局部內部類可以訪問外部類的屬性和方法
System.out.println(name);
out();
}
}
}
}
(2)實例化
局部內部類不能用外部類調用實例化,只能在局部內部類定義的方法中實例化。
public class Outer1 {
private String name;
public void out() {
System.out.println("這是外部類");
}
public void method1() {
// 局部內部類
class Inner {
public void in() {
System.out.println("這是局部內部類");
}
}
// 實例化局部內部類
Inner in = new Inner();
in.in();
}
}
4、匿名內部類
(1)定義
匿名內部類是最常用的內部類。
匿名內部類主要依賴于其他類和接口來實現。
依賴類:這個匿名內部類默認是該類的子類。
依賴接口:這個匿名內部類默認是該接口的實現。
(2)使用匿名內部類
接口 Work
public interface Work {
void doWork();
}
用匿名內部類實現接口,并調用方法:
public static void main(String[] args) {
// 創建一個匿名內部類
new Work() {
@Override
public void doWork() {
System.out.println("doWork");
}
}.doWork();
}
不使用匿名內部類,實現接口,并調用方法:
實現接口:
public class WorkImpl implements Work {
@Override
public void doWork() {
System.out.println("doWork");
}
}
調用方法:
public static void main(String[] args) {
new WorkImpl().doWork();
}
總結
以上是生活随笔為你收集整理的java 局部内部类常用么_Java中的内部类的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 浙大计算机学院吴飞,浙江大学吴飞教授来我
- 下一篇: java中process方法用处_Jav