静态内部类(内部类) - Java

静态内部类

StaticInnerClass01.java

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

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

【案例a】

外部类Outer10 中的visitInner10()方法

class Outer10 {private int n1 = 10;private static String name = "haha";//1. 放在外部类的成员位置//2.使用static修饰static class Inner10 {public void say() {// 可以直接访问外部类的所有静态成员,包含私有的,// 但不能直接访问非静态成员。System.out.println(name);}}public void visitInner10() {Inner10 inner10 = new Inner10();inner10.say();}
}

【案例b】

方法一

直接创建对象:类似A a = new A()

	Outer10.Inner10 inner10 = new Outer10.Inner10();

new Outer10.Inner10()
因为这是【静态】内部类,所以可以直接用类名访问
前提是满足访问权限

方法二

在外部类 Outer10 中编写一个方法,返回静态内部类的对象

【main】Outer10 outertmp = new Outer10();Outer10.Inner10 innertmp = outertmp.getInner10();innertmp.say();
class Outer10 {static class Inner10 {}public Inner10 getInner10() {return new Inner10();}
}

方法三

编写一个【静态】方法,返回静态内部类的对象
静态方法getInner10_可以访问静态成员Inner10

class Outer10 {static class Inner10 {}public static Inner10 getInner10_() {return new Inner10();}
}

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

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

相关文章

计算机网络基础知识自用

示例: 域名如:alibaba.com (URL地址) IP地址为:xx.233.xxs.12 (访问) 端口:80 1.ip Internet Protocol Address,又译为网际协议地址,常见的IP地址分为IPv4与IPv6两大类。目前我们使用的都是IPv4的地址&am…

音视频学习(十九)——rtsp收流(tcp方式)

前言 本文主要介绍以tcp方式实现rtsp拉流。 流程图 流程说明: 客户端发起tcp请求,如向真实相机设备请求,端口一般默认554;tcp连接成功,客户端与服务端开始rtsp信令交互;客户端收到play命令响应后,开启线…

Leetcode 501 二叉搜索树中的众数

题意理解: 首先明确: 二叉搜索树中序遍历是严格的单调递增序列,也就是说,传统意义上得到二叉搜索树不存在相同的数,也不可能存在众数。 所以: 这里的二叉搜索树不是严格意义上的二叉搜索树&#xf…

PVE中CT容器安装openwrt X86的极简方法

下载推荐:https://openwrt.ai/ 使用环境PVE8.0,openwrt是以上网址的最新版,内涵及其丰富组件。 问题来源: 在PVE虚拟机可以很方便的使用img文件,转换qm 成一个硬盘文件,加入到虚拟机也就完成了&#xff0c…

五、双向NAT

学习防火墙之前,对路由交换应要有一定的认识 双向NAT1.1.基本原理1.2.NAT Inbound NAT Server1.3.域内NATNAT Server —————————————————————————————————————————————————— 双向NAT 经过前面介绍,…

fiddler设置手机端抓包看这篇文章就足够了,轻松解决!

fiddler设置手机端抓包 安卓手机抓包 第一步:配置电脑和安卓的相关设置 1、手机和fiddler位于同一个局域网内;首先从fiddler处获取到ip地址和端口号: 添加图片注释,不超过 140 字(可选) ,点…

【Linux】coredump 文件的例子分析

1. 生成 core 文件 网上很多教程,我这里举一种 临时开启 生成 core 文件 # 0 就是没有开 coredump 功能 rootswd-Lenovo-G40-80:/home/swd/pros/c--learn/0.test_codes/demos# ulimit -c 0 # 设置值临时为 unlimited rootswd-Lenovo-G40-80:/home/swd/pros/c--le…

Java基础之常用类

Java基础之常用类 一、包装类1.1、Java基本数据类型及其对应的包装类1.2、包装类的自动装箱、自动拆箱机制1.3、包装类的优点 二、String类三、StringBuffer类和StringBuilder类3.1、主要区别:3.2、StringBuffer/StringBuilder用法(两者用法一致) 四、日期类4.1、Da…

setLineWrapMode 是 QTextEdit 类的成员函数,用于设置文本换行模式(Line Wrap Mode)

setLineWrapMode 是 QTextEdit 类的成员函数,用于设置文本换行模式(Line Wrap Mode)。 在 Qt 中,文本换行模式指定了文本编辑器中长行文本的显示方式。通过设置不同的换行模式,可以控制是否自动换行、如何换行以及是否…

[DASCTF 2023 0X401七月暑期挑战赛] web刷题记录

文章目录 EzFlask方法一 python原型链污染方法二 flask框架静态文件方法三 pin码计算 MyPicDisk方法一 字符串拼接执行命令方法二 phar反序列化 ez_cms EzFlask 考点:python原型链污染、flask框架理解、pin码计算 源码如下 import uuidfrom flask import Flask, re…

企业源代码防泄密的有什么痛点及难点?

安秉信息作为源代码防泄密的方案的提供商,对企业源代码防泄密有深入的了解。在企业中可以对普通 的文件,图纸进行加密保护这些文件的泄漏。但是企业管理者对于企业的源代码文件防泄密却没有更好的管理方案。 源代码防泄密最大的痛点是,现在企…

近五年—中国十大科技进展(2018年—2022年)

近五年—中国十大科技进展(2018-2022) 2022年中国十大科技进展1. 中国天眼FAST取得系列重要进展2. 中国空间站完成在轨建造并取得一系列重大进展3. 我国科学家发现玉米和水稻增产关键基因4. 科学家首次发现并证实玻色子奇异金属5. 我国科学家将二氧化碳人…

uni-app 微信小程序 pdf预览

<div click"getPDF">查看体检报告</div>getPDF() {uni.downloadFile({url: ${this.$baseURL}/file/download?id${this.pdfFileId},//编写在线的pdf地址success: function(res) {const filePath res.tempFilePath;uni.openDocument({filePath: filePath…

java stream流map和flatmap的区别

map和flatmap都是用来转换操作。 map()操作后的流与原始流的元素个数一一对应&#xff0c;一对一地进行元素转换&#xff0c;适用于对每个元素进行简单的转换操作&#xff0c;例如将元素的属性提取出来或进行数值计算。 flatMap()操作是一对多的元素转换&#xff0c;对于每个输…

Roll-A-Ball 游戏

Roll-A-Ball 游戏 1&#xff09;学习资料 b站视频教程&#xff1a;https://www.bilibili.com/video/BV18W411671S/文档&#xff1a; * Roll-A-Ball 教程&#xff08;一)&#xff0c; * Roll-A-Ball 教程&#xff08;二)线上体验roll-a-ball成品 * http://www-personal.umich.e…

使用opencv将sRGB格式的图片转换为BT.2020格式【sRGB】【BT.2020】

将sRGB格式的图片转换为BT.2020格式涉及到两个步骤&#xff1a;首先将sRGB转换到线性RGB&#xff0c;然后将线性RGB转换到BT.2020。这是因为sRGB图像通常使用伽马校正&#xff0c;而BT.2020工作在线性色彩空间中。 从sRGB到线性RGB&#xff1a;sRGB图像首先需要进行伽马校正解码…

Spring面向切面编程(AOP);Spring控制反转(IOC);解释一下Spring AOP里面的几个名词;Spring 的 IoC支持哪些功能

文章目录 Spring面向切面编程(AOP)什么是AOPSpring AOP and AspectJ AOP 的区别&#xff1f;Spring AOP中的动态代理如何理解 Spring 中的代理&#xff1f;解释一下Spring AOP里面的几个名词Spring在运行时通知对象Spring切面可以应用5种类型的通知&#xff1a;什么是切面 Aspe…

scoop bucket qq脚本分析(qq绿色安装包制作)

url字段 以qq.json为例&#xff0c;其对应的scoop配置文件在$env:scoop\buckets\extras\bucket\qq.json 其中的url字段 "url":"https://webcdn.m.qq.com/spcmgr/download/QQ9.7.17.29230.exe#/dl.7z"为qq安装包下载地址&#xff0c;后缀#/dl.7z为自行添加…

第八节HarmonyOS @Component自定义组件的生命周期

在开始之前&#xff0c;我们先明确自定义组件和页面的关系&#xff1a; 1、自定义组件&#xff1a;Component装饰的UI单元&#xff0c;可以组合多个系统组件实现UI的复用。 2、页面&#xff1a;即应用的UI页面。可以由一个或者多个自定义组件组成&#xff0c;Entry装饰的自定…

函数递归所应满足的条件

1.递归的概念 递归是学习C语⾔函数绕不开的⼀个话题&#xff0c;那什么是递归呢&#xff1f; 递归其实是⼀种解决问题的⽅法&#xff0c;在C语⾔中&#xff0c;递归就是函数⾃⼰调⽤⾃⼰。 递归的思想&#xff1a; 把⼀个⼤型复杂问题层层转化为⼀个与原问题相似&#xff0c;但…