java基础学习 day50(内部类)
创始人
2024-05-30 19:22:12
0
  1. 什么是内部类?
    写在一个类里面的类就叫做内部类

  2. 什么时候用到内部类?
    B类表示的事物是A类的一部分,且B单独存在没有意义。
    比如:汽车和发动机,ArrayList和迭代器,人和心脏

  3. 内部类的访问特点

  • 内部类可以直接访问外部类的成员,包括私有
  • 外部类要访问内部类的成员,必须创建内部类对象
    如图:
    在这里插入图片描述
  1. 成员内部类
  • 写在成员位置的,属于外部类的成员,如图
    在这里插入图片描述
  • 成员内部类可以被一些修饰符所修饰,比如:private,默认/空着不写,protected,public,static等,并遵守对应的范围规则
  • 在成员内部类里面,JDK16以前不能定义静态变量,JDK16开始才可以定义静态变量
  • 获取成员内部类对象的两种方式:
    a. 在外部类中编写方法,通过返回值对外提供内部类对象
    b. 直接创建
    格式:外部类名. 内部类名 对象名 = new 外部类名( ). new 内部类名( ) ;
    范例:Outer. Inner oi = new Outer( ). new Inner( ) ;

注意:当用private修饰内部类时,若外界想创建内部类对象,直接创建是不行的,有两种方法:
a. 更改private修饰符为public
b. 在外部类中编写方法,通过返回值对外提供内部类对象。但此时,外界(其他外部类)无法通过内部类名来创建内部类对象名,从而无法接收内部类对象地址,此时可以通过内部类的父类(多态)来创建并接收,也可以不创建对象名并接收,直接用链式编程使用即可。

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
【PdgCntEditor】解... 一、问题背景 大部分的图书对应的PDF,目录中的页码并非PDF中直接索引的页码...
修复 爱普生 EPSON L4... L4151 L4153 L4156 L4158 L4163 L4165 L4166 L4168 L4...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...