Java学习笔记20——内部类

内部类

  • 内部类的访问特点
  • 内部类的形式
    • 成员内部类
    • 局部内部类
      • 匿名内部类
      • 匿名内部类在开发中使用

内部类是类中的类

内部类的访问特点

1.内部类可以直接访问外部类的成员,包括私有成员
2.外部要访问内部类的成员,必须创建对象

内部类的形式

成员内部类

在类的成员的位置
外界创建对象使用的格式
外部类名.内部类名 对象名=外部类对象.内部类对象;

Outer.Inner oi=new Outer().new Inner();

针对public
对于私有类型,通过外部类的方法创建内部类对象,调用其方法。因为内部类的目的是用来隐藏的。

局部内部类

在类的局部位置:在方法中定义的类
1.外界无法直接使用,需要在方法内部创建对象并使用
2.该类可以直接访问外部类的成员,也可以访问方法内的局部变量

匿名内部类

匿名内部类是局部内部类的一种形式
匿名内部类的前提
存在一个类或者接口,这里的类可以是具体的类 也可以是抽象的类

主要区别
格式上

new 类名或者接口名(){
	重写方法;
}new Inter(){
	public void show(){
	
	}
};

本质上匿名内部类是一个继承了该类或者实现了该接口的子类匿名对象

调用方法

public class Outer{
	public void method(){
		new Inter(){
			@Override
			public void show(){
				System.out.println("匿名内部类");
			}
		}.show();
	}
}

对于多次调用
将这个对象以多态形式赋值给对象

public class Outer{
	public void method(){
		Inter i=new Inter(){
			@Override
			public void show(){
				System.out.println("匿名内部类");
			}
		};
		i.show();
	}
}

匿名内部类在开发中使用

匿名内部类的使用

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

IMX6ULL平台的I2C

IMX6ULL平台的I2C 文章目录 IMX6ULL平台的I2C概述模式和操作 外部信号时钟功能描述I2C系统配置仲裁程序时钟同步信号交换外围总线访问复位中断字节顺序 初始化初始化序列启动的生成传输后软件响应停止的生成重复启动的生成从模式仲裁失败软件限制 I2C内存映射/寄存器定义I2C地址…

Windows操作系统的文件组织结构和计算方法

我是荔园微风,作为一名在IT界整整25年的老兵,今天总结一下Windows操作系统的文件组织结构和计算方法。 这是一块非常实用的知识,感谢大家来看这个帖子。 Windows组织结构就是文件的组织形式,其中: 1.Windows逻辑结构…

FL Studio水果软件好用吗?对电脑硬件环境有哪些需求

如果你打算将来朝着艺术和音乐方向发展,那么学习音乐理论和音乐制作就是一门基础课了。 实践才是检验学习效果途径,在我们日常的练习中,一款功能强大且易学的音乐制作工具是少不了的。在没有实际体验过各个音乐制作工具的功能前,…

OpenHarmony3.1安全子系统-签名系统分析

介绍 应用签名系统主要负责鸿蒙hap应用包的签名完整性校验,以及应用来源识别等功能。 子系统间接口: 应用完整性校验模块给其他模块提供的接口;完整性校验: 通过验签,保障应用包完整性,防篡改;…

互联网中的web3.0和gpt有何联系?

文章目录 ⭐前言⭐web 3.0💖 web1.0-web3.0的概念 ⭐chatgpt💖 gpt的概念 ⭐总结⭐结尾 ⭐前言 大家好,我是yma16,本文分享互联网中的web3.0和gpt的关系。 互联网的发展 第一台计算机的出现 世界上第一台通用计算机“ENIAC”于…

JavaScript键盘事件

目录 一、keydown:按下键盘上的任意键时触发。 二、keyup:释放键盘上的任意键时触发。 三、keypress:在按下并释放能够产生字符的键时触发(不包括功能键等)。 四、input:在文本输入框或可编辑元素的内容…

SCSI介绍和SCSI命令承载于各类总线的方式

1. SCSI协议简介 小型计算机系统接口(SCSI,Small Computer System Interface)是一种用于计算机及其周边设备之间(硬盘、软驱、光驱、打印机、扫描仪等)系统级接口的独立处理器标准。虽然名字里面带个接口,但实际上是一…

基于深度学习的高精度野生目标检测识别系统(PyTorch+Pyside6+YOLOv5模型)

摘要:基于深度学习的高精度野生目标检测识别系统可用于日常生活中检测与定位野生目标目标,利用深度学习算法可实现图片、视频、摄像头等方式的野生目标目标检测识别,另外支持结果可视化与图片或视频检测结果的导出。本系统采用YOLOv5目标检测…

Apache DolphinScheduler——开源大数据调度器神器(国人之光)

本文已参与「新人创作礼」活动,一起开启掘金创作之路。 1. 简 介 Apache DolphinScheduler(海豚调度),国人之光,是许多国人雷锋开源在Apache的顶级项目,主要功能就是负责任务的调度处理。 1.1 概 念 Apache DolphinScheduler是一个分布式去…

玩转用户旅程地图

图:史江鸿 从事需求分析和产品设计工作已经有几个年头了,我很享受这个职业。因为在这段职业历程中,我学到了很多有意思的方法和工具,用户旅程地图就是其中一个。 如今在国内外许多IT公司,用户旅程地图已经成为需求分析…

Python连接达梦数据库

python如果想连接达梦数据库,必须要安装dmPython。 简介:dmPython 是 DM 提供的依据 Python DB API version 2.0 中 API 使用规定而开发的数据库访问接口。dmPython 实现这些 API,使 Python 应用程序能够对 DM 数据库进行访问。 dmPython 通…

微服务之服务容错

Informal Essay By English Share a sentence that I think is very reasonable, as long as you can know the underlying logic of anything, you can hold it without fear 参考书籍: “凤凰架构” 引言 在 Martin Fowler 与 James Lewis合写的文章《Micros…

Linux内核源码分析 2:Linux内核版本号和源码目录结构

一、Linux的版本 1. 稳定版和开发版 Linux内核主要分为两种版本: 稳定版(长期支持版):稳定版的内核具有工业级的强度,可以广泛地应用和部署。而每一代新推出的稳定版内核大部分都只是修正了一些Bug或是加入了一些新的…

MySQL数据类型

文章目录 一、数据类型分类二、数值类型1.tinyint类型2.bit类型3.float类型4.decimal类型 三、字符串类型1.char类型2.varchar类型 四、日期和时间类型五、enum类型和set类型1.enum类型2.set类型 一、数据类型分类 MySQL的数据类型一共有如下几类,表格中简单介绍了…

企业级API网关之典型应用场景

目 录 01 企业面对API与网关的现状‍‍‍‍‍ 02 APIGW介绍及企业应用场景 03 总结 01 企业面对API与网关的现状‍ 在企业中,进行新的系统/应用/产品开发时,具有周密的流程:从需求分析、设计、开发、测试、发布与验收。所以,一…

bmp转jpg怎么转?bmp转换jpg的几个方法

bmp转换jpg的几个方法~什么是BMP呢?BMP是位图文件格式的一种,全称为Bitmap(位图),是一种基于像素的图像文件格式。BMP是Windows操作系统中最常用的图像格式之一,通常以.bmp或.dib作为文件扩展名。BMP文件格…

华芯微特SWM34-IO速度优化

对比测试了一下IO翻转速度在各种函数调用的情况下的差异 CPU运行速度150Mhz,SDRAM开 直接调用翻转函数 while(1) {GPIO_InvBit(GPIOA, PIN0); }速度大约5Mhz,主要是因为函数调用开销和函数内部的移位和异或操作,增加了指令的运行数量。 vo…

Rust每日一练(Leetday0012) 首末位置、插入位置、有效数独

目录 34. 查找元素的首末位置 Find-first-and-last-position-of-element-in-sorted-array 🌟🌟 35. 搜索插入位置 Search Insert Position 🌟 36. 有效的数独 Valid Sudoku 🌟🌟 🌟 每日一练刷题专栏…

Atcoder beginner contest 302

A - Attack AC代码&#xff1a; #include<iostream> #include<algorithm> #include<cstring> #define int long long using namespace std; signed main() {int a, b;cin >> a >> b;if (a % b 0) cout << a / b << endl;else c…

加密与解密 调试篇 动态调试技术 (二)

目录 常见的断点 1.INT 3 断点 检测 绕过 2.硬件断点 原理 我们给出硬件中断的例子 删除硬件断点 3.内存断点 原理 例子 删除 区别 总结 4.内存访问一次性断点 5.消息断点 例子 删除 6.条件断点 &#xff08;1&#xff09;按寄存器条件中断 &#xff08;2&…