java的嵌套类(nested class)、内部类(inner class)的区别

news2024/10/1 21:27:53

嵌套类即nested class,内部类即Inner class。
概括来说,嵌套类的概念比内部类概念大。嵌套类包含内部类和非内部类。一个内部类一定是一个嵌套类,但一个嵌套类不一定是一个内部类。

在一个类内部或者接口内部声明的类是嵌套类。
下面这些类是嵌套类:

  • 一个成员类;
  • 一个局部类;
  • 一个匿名类

一个成员类的声明被另外一个类或者接口的声明直接包围。
一个局部类的声明是被一个块(block)包含。

下面的嵌套类代码示意,包含了一个成员类、一个局部类和一个匿名类:

package com.thb;

public class Test2 {
	
	// 匿名类,这个匿名类实际继承了MemberClass类
	public MemberClass concreteMember = new MemberClass() {
		public void showMessage() {		
			System.out.println("匿名类");
		}		
	};
	
	// 成员类
	class MemberClass {
		public void showMessage() {
			System.out.println("成员类");
		}
	}
	
	public void test() {
		// 局部类
		class LocalClass {}		
	}	
}

上面代码编译以后的类层次结构:
在这里插入图片描述

内部类(Inner class)首先是一个嵌套类,并且这个类没有被显式声明为static,也不是隐含着是static的。
注意:没有内部接口,因为所有的嵌套接口都隐含着是static的。

下面这些类属于内部类:

  • 一个成员类,但不是显式声明为static,也不是隐含着static的;
  • 一个局部类,但不是隐含着是static的(一个局部类不能被显式声明为static的,否则编译报错);
  • 一个匿名类

下面的这些嵌套类隐含着是static的,所以不是内部类:

  • 一个 成员枚举类;
  • 一个局部枚举类;
  • 一个成员记录类;
  • 一个局部记录类;
  • 一个接口的成员类

用static关键字显式修饰类的时候,不能修饰外部类,也不能修饰嵌套类中的局部类和匿名类,而只能修饰嵌套类中的成员类。
当然,一些局部类(即,局部枚举类和局部record类)隐含着是static的(但就是不能用static显式修饰)。因为所有嵌套的枚举类和嵌套的record类都隐含着是static的。
如果一个嵌套类用static修饰,那么就是声明这不是一个内部类。

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

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

相关文章

《Java面向对象程序设计教程》课后编程题

文章目录 第 1 章 Java 概述第 2 章 Java 语言基础第 3 章 Java 面向对象编程第 4 章 Java 图形用户界面程序设计第 5 章 Applet 设计第 6 章 Java 输入输出流与文件操作第 7 章 Java 的多线程机制第 9 章 常用工具类与集合框架 第 1 章 Java 概述 试编写 Java 程序&#xff0…

Android studio新建项目运行遇到的问题

文章目录 The emulator process for AVD xxx has terminated原因(环境变量问题)解决其他原因 新建的练习项目更改SDK默认位置更改方法 The emulator process for AVD xxx has terminated 运行虚拟机时报此错误 原因(环境变量问题&#xff0…

555 timer circuit

#1, Block & principle 1.1, The threshold and trigger levels normally are two- thirds and one-third, respectively, of VCC.(分压) 1.2,These levels can be altered by use of the control-voltage terminal. When the trigger in…

生成式 AI:通信服务提供商云转型的下一阶段

【本文由Cloud Ace 整理发布。Cloud Ace 是谷歌云全球战略合作伙伴,拥有 300 多名工程师,也是谷歌最高级别合作伙伴,多次获得 Google Cloud 合作伙伴奖。作为谷歌托管服务商,我们提供谷歌云、谷歌地图、谷歌办公套件、谷歌云认证培…

spring boot引入swagger报错处理

目录 1. 报错说明 2. 查找原因 2.1 此前笔者的代码 3. 问题解决说明 4. 解决方案 4.1 在pom.xml引入springdoc包 4.2 创建配置文件(可省略) 4.3 在controller加入注解 4.4 查看接口文档 4.5 常用注解 1. 报错说明 在java项目中引入swagger 2.9.2…

Linux设置进程名称(标题) ( 7) -【Linux通信架构系列 】

系列文章目录 C技能系列 Linux通信架构系列 C高性能优化编程系列 深入理解软件架构设计系列 高级C并发线程编程 期待你的关注哦!!! 现在的一切都是为将来的梦想编织翅膀,让梦想在现实中展翅高飞。 Now everything is for the…

技术管理三板斧之第一板斧拿结果-定目标

一、现状: 去年年底今年年初,帮助一家公司做了一次大的系统重构,30多小伙伴,经历一次洗礼,对产品定位,技术选型,目标制定,任务分配,协同开发,测试上线&#x…

JS 启动一个计时器来跟踪某一个操作的占用时长

文章目录 需求分析代码 需求 JS 中想要记录一个操作的占用时长 分析 可以启动一个计时器console.time(name:string)来跟踪某一个操作的占用时长。每一个计时器必须拥有唯一的名字,页面中最多能同时运行 10,000 个计时器。 当以此计时器名字为参数调用 console.timeE…

蓝桥杯专题-试题版-【龟兔赛跑预测】【回形取数】【阶乘计算】【矩形面积交】

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列点击跳转>蓝桥系列 👉关于作者 专注于Android/Unity和各种游…

计算机的性能指标

计算机的主要性能指标: 机器字长: 指参与运算的基本数位, 它是由加法器, 寄存器的数位决定的, 所以及其资产一般等于内部寄存器的大小 数据路通宽度: 数据总线一次能够并行传送信息的位数, 这里所说的数据通路宽度实际是指外部数据总线的宽度 主存容量: 一个存储器所能存储的…

C语言王国探险记之常量的四大护卫

王国探险记系列 文章目录(3) 前言 一、常量是什么? 二、常量的第一护卫:字面常量 1.什么是字面常量? 三、常量的第二护卫:const修饰的常变量 1.什么是const修饰的常变量? 2,证明const修饰的常变量…

nginx部署多个前端项目

前端采用vue框架,主要介绍在同一个ipport下(或域名),通过访问不同的子路径部署多个项目 把前端打包好的项目直接放进 nginx/html 目录下面, 下面展示根据不同的路由模式的nginx配置👇 路由采用hash模式 浏…

基于深度学习YOLOv5电动车头盔佩戴检测设计毕业设计

wx供重浩:创享日记 对话框发送:625头盔 获取完整源码源文件标注好的数据集(在源码文件夹->yolov5-5.0->VOCdevkit)优秀论文答辩PPT及文稿等 设计总说明 在许多非机动车交通事故中,未佩戴头盔是造成驾驶人受伤或死亡的主要原因&#xf…

永磁电机中的磁钢

稀土永磁最大的应用领域就是永磁电机,电机俗称马达,广义上的电机包含了将电能转换成机械能的电动机,和将机械能转换成电能的发电机,不管是电动机还是发电机,都是利用电磁感应定律或电磁力定律作为基础原理的电气设备。…

【教学类-36-02】动物头饰制作(midjounery动物简笔画四图)

作品展示 (用midjounery动物简笔画四图作为头饰上的动物,正方形折纸的辅助黏贴物) 背景需求: 1、用midjounery生成简笔画动物图案(四张预览) 2、收集各种不同的动物的一张图片.png 3、设计一款中班幼儿用…

python spider 爬虫 之 解析 xpath 、jsonpath、BeautifulSoup (-)

Xpath 插件下载及安装 下载地址:https://chrome.zzzmh.cn/info/hgimnogjllphhhkhlmebbmlgjoejdpjl 安装xpath 如果下载的xpath后缀是crx 格式的, 直接改成zip格式,然后直接拖拽到上面的界面中便可, 查看是否安装成功&#xff0c…

DOM操作——获取元素的方式

关注“大前端私房菜”微信公众号,回复暗号【面试宝典】即可免费领取107页前端面试题。 DOM-文档对象模型 DOM(Document Object Model):文档对象模型 其实就是操作 html 中的标签的一些能力,或者说是一整套操作文档流的…

10年内打造量子超级计算机,行吗?

光子盒研究院 在未来十年内,微软打算建造一台量子超级计算机。 本周四,微软制定了一个开发自己的量子超级计算机的战略蓝图。设计它的团队将花费至少10年的研究时间,来建造一台能够每秒进行一百万次可靠量子操作的机器。 微软声称&#xff0c…

C++的access()函数

文章目录 函数功能头文件函数原型参数说明示例 函数功能 确定文件是否存在或者判断读写执行权限;确定文件夹是否存在即,检查某个文件的存取方式,比如说是只读方式、只写方式等。如果指定的存取方式有效,则函数返回0,否…

津津乐道设计模式 - 观察者模式详解(学会察言观色再也不怕女朋友生气了)

🌷 古之立大事者,不惟有超世之才,亦必有坚忍不拔之志 🎐 个人CSND主页——Micro麦可乐的博客 🐥《Docker实操教程》专栏以最新的Centos版本为基础进行Docker实操教程,入门到实战 🌺《RabbitMQ》…