• javase----内部类


    内部类

    1.内部类概念

    内部类就是把一个类定义在一个类的内部

    内部类的种类:
    分两种情况:

    (1)在类中定义类(成员内部类,静态内部类)
    (2)在方法中定义类(局部内部类,匿名内部类)

    2. 局部内部类

    局部内部类(本地内部类):定义在方法中的类.
    只能在方法中使用,出了方法就无法使用,所以称为局部内部类
    原因:因为方法无法像类一样直接调用成员

    public class Demo1 {
        public void test() {
            //局部内部类,不能在方法外使用
            class  In{
                public int a=100;
            }
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    3.成员内部类

    成员内部类也叫实例内部类,可以把他当做外部类的一个平台实例成员

    class Out{
        class  In{
            public int  a=100;
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    注意:
    1.在实例内部类中,不能创建一个静态成员变量
    因为静态成员变量在类加载的时候就会创建,我们正常情况下我们可以直接通过类来访问静态对象而不需要去实例化对象,但是当他在实例内部类中就不能创建,因为内部类无法直接通过外部类访问,必须得创建实例,或者你改成静态内部类
    在这里插入图片描述
    但是我们可以创建静态常量(static final)
    2.如何实例化实例内部类?

    先实例化外部类
    外部类名.内部类名 变量 = 外部类对象的引用.new 内部类();
    因为没有实例化外部类我们就得不到内部类这个对象,更别说实例它了
    在这里插入图片描述
    3. 成员内部类当中,如果包含了和外部类同名的成员变量,那么如何在成员内部类当中访问?

    在这里插入图片描述在这里插入图片描述
    4.如何继承内部类?(了解即可)
    在这里插入图片描述
    4. 当一个类有内部类的时候的字节码文件(了解即可)
    在这里插入图片描述

    格式:外部类名$内部类名.class

    4.静态内部类

    在这里插入图片描述
    注意事项:
    1.如何实例化静态内部类对象
    外部类名.内部类名 变量名= new 外部类名.内部类名()
    因为静态内部类可以直接通过外部类获得,故可以直接创建实例
    2. 静态内部类当中,如何访问外部类的成员变量?

    通过在静态内部类中创建外部类的实例来访问.
    在这里插入图片描述

    5.匿名内部类

    在这里插入图片描述
    通过匿名内部类访问类中方法
    在这里插入图片描述
    通过匿名内部类重写方法
    在这里插入图片描述
    在这里插入图片描述

  • 相关阅读:
    AD20 ~PCB封装库的制作
    css四种导入方式
    elasticsearch的安装及使用
    可恶的一直按键又来了
    并发-Java中的锁(二)--- 重入锁ReentrantLock,公平锁,非公平锁笔记
    算法— — 归并排序的应用
    开关电源环路稳定性分析(01)-Buck变换器
    2. 安装运行SQL语句的环境
    Hadoop的集群搭建及HDFS命令
    menuconfig 图形化配置原理说明三
  • 原文地址:https://blog.csdn.net/m0_60565784/article/details/125543207