• Java成员内部类、局部内部类、匿名内部类


    1、成员内部类,在已有的类的内部声明类,也成为嵌套类,如果使用了static就变成顶级类,否则就是成员的作用域一样,内部类不能有静态成员,内部类可以使用外部的成员

    public class Person1 {
    public int Age;
    class Say{
    public void SayHello(){
    System.out.println(“你的年龄”+Age);
    }
    }
    }
    class TestPerson1{
    @Test
    public void T(){
    //引用时需要指定完整类名
    Person1.Say s = new Person1().new Say();
    s.SayHello();
    }
    }

    2、局部内类,在方法中声明内部类

    public class Person {
    public int Age;
    //方法中增加
    public void Say() {
    String Name = “李四”;
    class innerClass {
    public void hello() {
    System.out.println(Name + “你好”);
    }
    }
    innerClass inn = new innerClass();
    inn.hello();
    System.out.println(“调用内部类”);
    }
    }

    3、匿名内部类

    匿名类是一个没有类名的特殊内部类,也叫做匿名内部类,匿名内部类适合创建只需要使用一次的类,创建匿名内部类时需要集成一个已有的父类或者是实现一个接口,由于匿名内部类本身没有类名,因此不存在构造函数。

    匿名内部类,本身没有名字,使用new语句一部分来声明,格式如下:

    new 父类名/接口名(){

    }

    注意:匿名内部类不能有构造函数,也不能包含静态成员

    public class Test44 {
    @Test
    public void testPerson(){
    // Person person = new Person();
    // person.Say();
    //通过接口创建匿名内部类,使用多态完成
    MyInterFace myInterFace = new MyInterFace() {
    @Override
    public void SayHello() {
    System.out.println(“创建匿名内部类”);
    } };
    //调用匿名内部类的方法
    myInterFace.SayHello();
    }
    }
    /***

    • 定义接口实现匿名内部类
      */
      interface MyInterFace{
      void SayHello();
      }
  • 相关阅读:
    数仓4.0(数据仓库系统)--续集二
    java毕业设计毕业生派遣系统Mybatis+系统+数据库+调试部署
    【Python】assert函数(含源代码)
    java中的注解
    Spring系列-1 启动流程
    Flutter 自定义ScrollPhysics实现PageView禁止左滑或右滑
    Sunshine + Moonlight 纯软件实现全平台设备作 Linux 副屏
    AOJ 0531 坐标离散化
    51单片机按键控制LED灯亮灭的N个玩法
    SpringBoot集成RabbitMQ使用建议
  • 原文地址:https://blog.csdn.net/m0_54828003/article/details/126233226