Java内部类分类

news2024/12/23 6:02:28

文章目录

            • 内部类分类
        • 局部内部类的使用
        • 匿名内部类
        • 成员内部类
        • 静态内部类

一个类的内部又完整的嵌套了另一个类结构。被嵌套的类称为内部类(inner class),嵌套其他类的类称为外部类(outer class)。是我们类的第五大成员

思考:类的五大成员是哪些? - 属性、方法、构造器、代码块、内部类,

内部类最大的特点就是可以直接访问私有属性,并且可以体现类与类之间的包含关系

基本语法

class Outer{   //外部类
    class Inner{  //内部类
        
    }
}
class Other{  //外部其它类
    
}
内部类分类

内部类

局部内部类的使用

说明:局部内部类是定义在外部类的局部位置,比如方法中,并且有类名。
1.可以直接访问外部类的所有成员,包含私有的
2.不能添加访问修饰符,因为它的地位就是一个局部变量。局部变量是不能使用修饰符的。但是可以使用final修饰,因为局部变量也可以使用final
3.作用域:仅仅在定义它的方法或代码块中。
4.局部内部类—访问—>外部类的成员[访问方式:直接访问]
5.外部类—访问—>局部内部类的成员
访问方式:创建对象,再访问(注意:必须在作用域内)
6.外部其他类–不能访问---->局部内部类(因为局部内部类地位是一个局部变量)
7.如果外部类和局部内部类的成员重名时,默认遵循就近原则,如果想访问外部类的成员,则可以使用(外部类名.this.成员) 去访问[演示]

匿名内部类


匿名内部类的语法比较奇特,请大家注意,因为匿名内部类既是一个类的定义 ,同时它本身也是一个对象,因此从语法上看,它既有定义类的特征,也有创建对象的特征,对前面代码分析可以看出这个特点,因此可以调用匿名内部类方法。

3.可以直接访问外部类的所有成员,包含私有的[案例演示]
4.不能添加访问修饰符,因为它的地位就是一个局部变量。[过]
5.作用域:仅仅在定义它的方法或代码块中。[过]
6.匿名内部类—访问 ---->外部类成员[访问方式:直接访问]
7.外部其他类—不能访问----->匿名内部类K因为匿名内部类地位是一个局部变量)
8.如果外部类和内部类的成员重名时,内部类访问的话,默认遵循就近原则,如果想访问外部类的成员,则可以使用(外部类名.this.成员)去访问

成员内部类

说明: 成员内部类是定义在外部类的成员位置,并且没有static修饰。

1.可以直接访问外部类的所有成员,包含私有的
2.可以添加任意访问修饰符(public、protected 、默认、private),因为它的地位就是一个成员。
3.作用域: 和外部类的其他成员样,为整个类体. 比如前面案例,在外部类的成员方法中创建成员内部类对象,再调用方法
4.成员内部类—访向---->外部类(比如:属性) [访问方式:直接访问] (说明)
5.外部类—访问----->内部类(说明)访问方式:创建对象,再访问
6.外部其他类–访问----成员内部类

静态内部类

说明: 静态内部类是定义在外部类的成员位置,并且有static修饰

  1. 可以直接访问外部类的所有静态成员,包含私有的,但不能直接访问非静态成员
  2. 可以添加任意访问修饰符(public、protected 、默认、private),因为它的地位就是一个成员。
  3. 作用域:同其他的成员,为整个类体
  4. 静态内部类—访向---->外部类(比如:静态属性) [访问方式:直接访问所有静态成员]
  5. 外部类—访向---->静态内部类访问方式: 创建对象,再访问
  6. 外部其他类–访向—>静态内部类
  7. 如果外部类和静态内部类的成员重名时,静态内部类访问的时,默认遵循就近原则,如果想访问外部类的成员,则可以使用(外部类名.成员) 去访问

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/14808.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Windows安装Git教程(2022.11.18 Git2.38.1)

(1)首先前往Git官网,下载安装文件: (2)打开安装程序,把Only show new options的勾去掉,点击Next: (3)此处可以选用默认设置,也可以勾…

ProCAST一键导出有限元模型的几何拓扑和属性信息

第一次将ProCast有限元后处理中的数据导出,当时没有经验,方法比较粗暴,详情见文章:ProCast导出节点应力数据并格式化。 最近发现了一种更高效的数据导出“新姿势”,能够快速得到有限元模型的几何拓扑和节点属性数据&a…

电科大离散数学-2-命题逻辑-2

目录 2.7 范式 2.7.1 范式的定义 2.7.2 范式存在定理 2.8 主析取范式和主合取范式 2.8.1 极小项和极大项的定义和编码 2.8.2 极小项和极大项的性质 2.8.3 主析取范式和主合取范式的定义 2.8.4 主范式求解定理 2.8.5 真值表技术 2.8.6 范式的相互转化 2.8.7 主范式的…

[附源码]Python计算机毕业设计jspm计算机学院党员积分管理系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

Markdown 教程之如何在 Markdown 文档中添加流程图、方程式和交互式图形

您是否遇到过想要在 Markdown 文档中包含一些简单图表或方程式的场景?如果这是一次性的事情,你可以做的是使用 Power Point 或在线生成器,将图表保存为图像并将其放在你的文章中。这种方法的缺点是背景颜色可能与您的文章不匹配,并且进行更改非常耗时。 Markdown 扩展是第…

[附源码]java毕业设计柠檬电动车租赁系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

java selenium (五) 元素定位大全

页面元素定位是自动化中最重要的事情, selenium Webdriver 提供了很多种元素定位的方法。 测试人员应该熟练掌握各种定位方法。 使用最简单,最稳定的定位方法。 自动化测试步骤 在自动化测试过程中, 测试程序通常的操作页面元素步骤 1. 找到…

【快速上手系列】内网穿透(natapp)的快速上手和简单使用教程

【快速上手系列】内网穿透(natapp)的快速上手和简单使用教程 使用 1、natapp配置 网址 https://natapp.cn/ 官方文档 https://natapp.cn/article/natapp_newbie (这个也挺言简意赅的😎) 点击下载或向下划到客户端…

读写算杂志社读写算编辑部读写算杂志2022年第30期目录

课程改革 新课程理念下学生自主学习能力培养策略探究 陈璟; 1-3 新课改下初中语文教学中名著阅读教学策略探究 赵璇; 4-6 教育创新《读写算》投稿:cn7kantougao163.com 多媒体辅助下初中物理教学方法改革策略分析 张鹤贵; 7-9 关于互联网环境下小学美术课堂教学模式…

LVGL | 1.LVGL PC模拟器之CodeBlocks

LVGL的学习与使用 LVGL | 1.LVGL PC模拟器之CodeBlocks 1.资源 1-1.主页:https://lvgl.io/ 1-2.LVGL | LVGL简介之中文文档 1-3.LVGL | LVGL快速概述之中文文档 1-4.问题反馈:https://forum.lvgl.io/ 1-5.LVGL开源GUI零基础入门课程(韦东山监制) 教程基…

【附源码】计算机毕业设计JAVA沙县小吃点餐系统

项目运行 环境配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: Springboot mybatis Maven Vue 等等组成,B/…

通信电源专业技术交流

UPS电源 •UPS为交流不间断供电电源系统的英文缩写。• UPS系统原理:UPS系统由整流模块、逆变器、蓄电池、静态开关等组成。整流模块(AC/DC)和逆变器(DC/AC)都为能量变换装置,蓄电池为储能装置。除此还有间…

docker部署Jenkins与任务创建【七千字超详细指南】

大家好,我是早九晚十二,目前是做运维相关的工作。写博客是为了积累,希望大家一起进步! 我的主页:早九晚十二 文章目录什么是jenkins?jenkins的功能依赖环境使用docker快速搭建查看版本下载jenkins镜像使用d…

搞个网站需要多少钱【网站费用】

想搞一个网站,我们先了解一下搞个网站需要多少钱?网站建设费用主要包括:网站搭建、服务器费用(有些是免费的)、域名费用以及其他杂费。对于刚成立网站我们可以选择用自助建站方案来进行搭建网站,因为我们自…

【freeRTOS】操作系统之五.-内存管理

\FreeRTOS\Source\portable\MemMang下提供了5中内存分配机制的实现 一、配置FreeRTOS内存大小 在FreeRTOSConfig.h头文件中宏configTOTAL_HEAP_SIZE用于配置内核可用的RAM大小。 在heap1.c, heap2.c, heap4.c源文件中,分配的内存实际上是用一个静态数组ucHeap来表…

阿里后端优化这么恐怖?看完这20W字Java性能实战经验手册,最少P7

学习是一种基础性的能力。然而,“吾生也有涯,而知也无涯。”,如果学习不注意方法,则会“以有涯随无涯,殆矣”。 学习就像吃饭睡觉一样,是人的一种本能,人人都有学习的能力。我们在刚出生的时候…

通过rpm安装MySQL8.0

前文 下载虚拟机,安装Linux(Centos7发行版)关闭SELinux服务 (安全模块,容易跟其他程序冲突,建议关闭)替换yum源 (加快下载依赖速度)安装MySQL 关闭SELinux 进入vi /ec…

代码随想录——冗余连接(并查集)

题目 树可以看成是一个连通且 无环 的 无向 图。 给定往一棵 n 个节点 (节点值 1~n) 的树中添加一条边后的图。添加的边的两个顶点包含在 1 到 n 中间,且这条附加的边不属于树中已存在的边。图的信息记录于长度为 n 的二维数组 edges ,edges[…

(C语言)成绩统计

[#4练习赛]成绩统计 题目描述 传智专修学院的“Java程序设计”班有 N(1≤100)N(1 \le 100)N(1≤100) 个学生,知道他们的个人信息和成绩: 姓名(长度不超过 202020 的仅由小写字母组成的字符串)平时分成绩(000 到 100…

网格窗帘布能符合NFP92-503法国M2级别要求吗?

NFP 92-503是针对建筑材料类产品的阻燃性能测试,主要分为M1-M4四个级别,M1为最高级别,以此类推,故而M2对阻燃要求还是比较严格的,布料要申请M2要求的话,前提至少要有阻燃处理了。 NFP 92-503 建筑材料阻燃测…