• 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();
      }
  • 相关阅读:
    Android 使用kotlin+注解+反射+泛型实现MVP架构
    Centos配置邮件发送
    一篇文章教你搞懂生鲜电商模式
    关于递归和回溯的一次深入思考
    Linux安全--iptables详解
    【pytorch学习笔记】01-安装与基础使用
    Kotlin 协程之取消与异常处理探索之旅(下)
    2023年浙江大学报考点公告及网报公告
    MySQL57部署与配置[Windows10]
    【视频】机器学习交叉验证CV原理及R语言主成分PCA回归分析犯罪率|数据共享
  • 原文地址:https://blog.csdn.net/m0_54828003/article/details/126233226