Java中的內部類,是指在一個類中定義的另一個類。這個內部類可以被外部類完全訪問和控制,但是它本身不能獨立存在。Java的內部類可以分為成員內部類、局部內部類和匿名內部類。其中,局部內部類和匿名內部類是比較常用的。
局部內部類是指在一個方法中定義的內部類。它只能在這個方法中被訪問,外部類無法直接訪問。它可以訪問外部類的成員變量和方法,但是如果要訪問局部變量,局部變量必須被聲明為final類型。
public class OuterClass { public void doSomething() { final int i = 10; class InnerClass { public void print() { System.out.println(i); } } InnerClass inner = new InnerClass(); inner.print(); } }
匿名內部類是指在一條語句中直接創建一個內部類的實例,而不需要給這個內部類定義一個名字。它只能使用一次,一般用來簡化代碼。匿名內部類可以繼承一個類或者實現一個接口。在創建匿名內部類的時候,需要指定它要實現的接口或者它要繼承的父類,并且需要實現它的抽象方法。
public interface MyInterface { public void doSomething(); } public class OuterClass { public void doSomething(MyInterface myInterface) { myInterface.doSomething(); } public static void main(String[] args) { OuterClass outer = new OuterClass(); outer.doSomething(new MyInterface() { public void doSomething() { System.out.println("Hello World"); } }); } }
總的來說,Java的內部類可以讓代碼更加簡潔,實現功能更加靈活,但是在實際應用中,需要根據具體情況進行選擇。
下一篇php blob顯示