点我

概述

定义

内部类是类中的五大成分之一(成员变量、方法、构造器、内部类、代码块),如果一个类定义在另外一个类的内部,这个类就是内部类

场景

当一个类的内部,包含了一个完整的事物,且这个事物没有必要单独设计时,就可以把这个事物设计成内部类

四种形式
  • 成员内部类:类中的一个普通成员

    创建对象的格式:外部类名.内部类名 对象名 = new 外部类(). new 外部类()

    在成员内部类的实例方法中,拿到当前外部类对象的格式为:外部类名.this

  • 静态内部类:有static关键词修饰的内部类

    创建对象的格式:外部类名.内部类名 对象名 = new 外部类.内部类()

    可以直接访问外部类的静态成员,不能直接访问外部类的实例成员

  • 局部内部类:定义在 方法中、代码块中、构造器等执行体中
  • 匿名内部类:特殊的局部内部类;所谓匿名,指的是程序员不需要为该类声明名字

    格式:new 类或接口(参数){类体(一般为方法的重写)};

    特点:匿名内部类本质就是一个子类,并会创建出一个子类对象

    作用:用于更方便的创建一个子类对象

package com.xbxaq.class_;

public class Test {
    public static void main(String[] args) {
        Animal dog = new Animal(){
            @Override
            public void cry() {
                System.out.println("小狗汪汪汪");
            }
        };
        dog.cry();
    }
}


abstract class Animal{
    public abstract void cry();
}

image-20240327131739072

分类: JAVA

评论

-- 评论已关闭 --

目录

目录