Java函数内部类:掌握Java函数内部类的语法和应用
Java函数内部类是指定义在函数内部的一个类。它是Java中比较特殊的一种类,因为它只有在外部函数被调用时才能被使用。本文将重点讲解Java函数内部类的语法和应用。
1.语法
Java函数内部类的语法与普通类相似,只是它的作用范围比较特殊。
定义函数内部类的语法:
public class OuterClass {
public void outerMethod() {
int a = 10;
class InnerClass {
public void innerMethod() {
System.out.println("这是内部类" + a);
}
}
InnerClass innerClass = new InnerClass();
innerClass.innerMethod();
}
}
使用函数内部类的语法:
public static void main(String[] args) {
OuterClass outerClass = new OuterClass();
outerClass.outerMethod();
}
2.应用
Java函数内部类的应用主要有以下几个方面:
2.1 实现回调函数
回调函数是指一个函数被当作参数传递给另一个函数,当另一个函数完成后会回调 个函数。我们可以利用函数内部类来实现回调函数,示例代码如下:
public class CallbackTest {
public interface Callback {
void callbackMethod(int result);
}
public void add(int a, int b, Callback callback) {
int result = a + b;
callback.callbackMethod(result);
}
public static void main(String[] args) {
CallbackTest callbackTest = new CallbackTest();
callbackTest.add(1, 2, new Callback() {
@Override
public void callbackMethod(int result) {
System.out.println("计算结果:" + result);
}
});
}
}
2.2 匿名内部类
Java中的匿名内部类是指没有类名的内部类。我们可以利用函数内部类来实现匿名内部类,示例代码如下:
public class AnonymousClassTest {
public static void main(String[] args) {
Runnable runnable = new Runnable() {
@Override
public void run() {
System.out.println("匿名内部类");
}
};
Thread thread = new Thread(runnable);
thread.start();
}
}
2.3 局部类
局部类是指定义在方法或代码块内的类。我们可以利用函数内部类来实现局部类,示例代码如下:
public class LocalClassTest {
public void print() {
class LocalClass {
public void printMsg() {
System.out.println("局部类");
}
}
LocalClass localClass = new LocalClass();
localClass.printMsg();
}
public static void main(String[] args) {
LocalClassTest localClassTest = new LocalClassTest();
localClassTest.print();
}
}
总结
本文为大家讲解了Java函数内部类的语法和应用。Java函数内部类适用于实现回调函数、匿名内部类和局部类等应用场景。需要注意的是,Java函数内部类只能在其所在的方法内部被使用。
