Java中的内部类和匿名内部类是两种特殊的类。
内部类是定义在另一个类内部的类,它可以访问包含它的类的私有属性和方法,它还可以继承其他类和实现接口。内部类的访问修饰符可以是public、private、protected或默认,它可以被声明为static或非static,可以访问外部类的成员,也可以访问同一外部类中的其他内部类。内部类通常用于实现某种接口或继承某个类。
匿名内部类是一种没有名字的内部类,它通常用于创建实现某个接口或继承某个类的对象,这个对象只使用一次。匿名内部类必须在定义时就创建对象,不能延迟到稍后再创建。它的语法格式为在实例化一个接口或抽象类的对象时,通过“new 接口名/抽象类名()”来定义匿名内部类。
举例来说,以下是一个内部类和一个匿名内部类的示例代码:
在上面的例子中,InnerClass是一个内部类,它可以访问外部类的私有属性x;testInnerClass()方法中创建了一个内部类对象,并调用了printX()方法。testAnonymousInnerClass()方法中创建了一个匿名内部类对象,它实现了Runnable接口的run()方法,并在新线程中打印一条消息。
你适合学Java吗?4大专业测评方法
代码逻辑 吸收能力 技术学习能力 综合素质
先测评确定适合在学习