欢迎访问宙启技术站
智能推送

Java函数内部类:掌握Java函数内部类的语法和应用

发布时间:2023-06-25 17:46:19

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函数内部类只能在其所在的方法内部被使用。