Static Nested Class 和 Inner Class的不同

Nested Class一般是C++的说法,Inner Class一般是Java的说法,指的是同一意思。
内部类分为静态内部类和非静态内部类。
静态内部类中可以包含静态成员,非静态内部类中不可以包含静态成员。
静态内部类中不能引用外部类中的实例成员。非静态内部类则没有这个限制。

在Java中,静态嵌套类(Static Nested Class)和内部类(Inner Class)是两种不同的类类型,它们之间存在一些重要的差异。以下是它们之间的主要区别和示例:

定义方式:

静态嵌套类:使用static关键字定义,可以直接通过类名访问,不需要外部类的实例。
内部类:定义在另一个类的内部,不使用static关键字。它需要外部类的实例才能被访问。
实例化方式:

静态嵌套类:可以直接通过类名进行实例化,不需要外部类的实例。
内部类:需要先创建外部类的实例,然后通过这个实例来创建内部类的实例。
访问权限:

静态嵌套类:可以直接访问外部类的静态成员和静态方法。
内部类:可以直接访问外部类的非静态成员,但是只能通过外部类的实例来访问外部类的静态成员和静态方法。
示例:

java
class OuterClass {  
    static class StaticNestedClass {  
        void display() {  
            System.out.println("Static Nested Class");  
        }  
    }  
    class InnerClass {  
        void display() {  
            System.out.println("Inner Class");  
        }  
    }  
}  
  
public class Main {  
    public static void main(String[] args) {  
        OuterClass.StaticNestedClass staticNestedObj = new OuterClass.StaticNestedClass();  
        staticNestedObj.display(); // 输出 "Static Nested Class"  
        OuterClass outerObj = new OuterClass();  
        OuterClass.InnerClass innerObj = outerObj.new InnerClass(); // 创建内部类对象需要外部类实例  
        innerObj.display(); // 输出 "Inner Class"  
    }  
}
在这个例子中,OuterClass包含一个静态嵌套类StaticNestedClass和一个内部类InnerClass。在main方法中,我们分别创建了StaticNestedClass和InnerClass的实例,并调用了它们的display方法。可以看到,创建StaticNestedClass的实例不需要OuterClass的实例,而创建InnerClass的实例则需要先创建OuterClass的实例

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

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

相关文章

【AngularJs】已改变ui-sref的state,但是href的url未改变

<!--数组&#xff1a;var routes [{route:go-update-a,id:1},{route:go-update-b,id:2}];--><a ng-click"vm.changeRoute(item)">改变跳转路径</a> <a ui-sref"{{item.route}}({id: item.id})">去修改</a><!--vm.change…

Transformer and Pretrain Language Models3-6

Pretrain Language Models预训练语言模型 content&#xff1a; language modeling&#xff08;语言模型知识&#xff09; pre-trained langue models(PLMs&#xff09;&#xff08;预训练的模型整体的一个分类&#xff09; fine-tuning approaches GPT and BERT&#xff08;…

【阻塞队列】阻塞队列的模拟实现及在生产者和消费者模型上的应用

文章目录 &#x1f4c4;前言一. 阻塞队列初了解&#x1f346;1. 什么是阻塞队列&#xff1f;&#x1f345;2. 为什么使用阻塞队列&#xff1f;&#x1f966;3. Java标准库中阻塞队列的实现 二. 阻塞队列的模拟实现&#x1f35a;1. 实现普通队列&#x1f365;2. 实现队列的阻塞功…

码云公钥免密配置

码云公钥免密配置 ssh-keygen -t rsa &#xff08;三个回车&#xff09;cat ~/.ssh/id_rsa.pub &#xff08;查看公钥然后放到码云即可&#xff09;推送代码到码云步骤 ssh免密登录

立创EDA学习:设计收尾工作

布线整理 ShiftM&#xff0c;关闭铺铜显示 调整结束后再使用快捷键”ShiftM“打开铺铜 过孔 在空白区域加上一些GND过孔&#xff0c;连接顶层与底层的铺铜。放置好”过孔“后&#xff0c;隐藏铺铜&#xff0c;观察刚才放置的过孔有没有妨碍到其他器件 调整铺铜 先打开铺铜区&…

javaMailSender 发送邮件,基于Spring Boot

目录 引入依赖 配置文件配置 具体代码 MultipartFile 转 File 工具类 引入依赖 <!--邮件--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId></dependency><!--日…

《Vue3 基础知识》 Vue2+ElementUI 自动转 Vue3+ElementPlus(GoGoCode)

前言 GoGoCode 一个基于 AST 的 JavaScript/Typescript/HTML 代码转换工具。 AST abstract syntax code 抽象语法树。 实现 第一步&#xff1a;安装 GoGoCode 插件 全局安装最新的 gogocode-cli 即可 npm i gogocode-cli -g查看版本 gogocode-cli -V相关插件说明 插件描述…

【多态】10分钟大白话讲解Java中的多态

1.多态的概念 多态(polymorphism)本来是生物学里的概念&#xff0c;表示地球上的生物在形态和状态方面的多样性。 而在java的面向对象中&#xff0c;多态通俗点说就是多种形态&#xff0c;具体点就是去完成某个行为&#xff0c;当不同的对象去完成时会产生不同的状态。也就是说…

多路IO复用模型——epoll模型

文章目录 一、epoll模型是什么&#xff1f;二、epoll模型工作流程三、epoll模型优缺点总结 一、epoll模型是什么&#xff1f; epoll模型是整合了select和poll优势&#xff0c;并且优化了已知的问题。 使用红黑树作为监听集合&#xff08;监听树&#xff09; 通过epoll_create创…

先进计算产业促湖南数字经济规模突破1.7万亿元

中新网湖南新闻1月26日电 (于冬阳 周沁怡)“截至2023年底&#xff0c;集群汇聚了中电长城、飞腾、麒麟等1400余家企业&#xff0c;产值达1800亿元。”1月26日&#xff0c;国家新一代自主安全计算系统产业集年度工作推进会在长沙举行&#xff0c;国家新一代自主安全计算系统产业…

Segment Routing MPLS概述

段路由SR&#xff08;Segment Routing&#xff09;是基于源路由理念而设计的在网络上转发数据包的一种协议。Segment Routing MPLS是指基于MPLS转发平面的Segment Routing&#xff0c;下文简称为Segment Routing。Segment Routing将网络路径分成一个个段&#xff0c;并且为这些…

python-分享篇-使用海龟turtle模块实现幸福大转盘

文章目录 准备代码效果 准备 一、根目录下放图片 代码 from turtle import * import turtle from random import randint import sys #屏幕初始化 screen turtle.Screen() screen.title("幸运大转盘 转转转~") screen.setup(480,450) screen.bgpic("转盘.png…

低代码助力企业转型可视化

随着企业数字化转型的加速推进&#xff0c;软件开发变得日益重要。然而&#xff0c;传统的软件开发流程往往繁琐且费时&#xff0c;降低了企业转型的效率。低代码开发平台的兴起为企业提供了一种快速、灵活且可视化的解决方案&#xff0c;使企业转型更加高效和可持续。 随着数字…

Android底部导航栏创建——ViewPager + RadioGroup

Android底部导航栏有多种实现方式&#xff0c;本文详解其中的ViewPager RadioGroup方式的实现步骤。 我们先来看以下看一下最终做出的效果&#xff0c;使大家有个基本概念。 本结构特点&#xff1a; 1&#xff0c;ViewPager部分触摸左右滑动切换页面&#xff0c;RadioGroup部…

怎么获取二维码的链接?二维码转链接只需3步

怎么从二维码中提取内容呢&#xff1f;现在很多内容都会用二维码方式来存储&#xff0c;但是有些场景下二维码是无法使用的时候&#xff0c;想要查看二维码中的内容&#xff0c;就需要分解二维码成链接后使用。那么二维码分解成链接具体该怎么做呢&#xff1f;今天就将在线二维…

计算机组成原理--4.指令系统

一.指令格式 二.指令分类

【笔记】顺利通过EMC试验(16-41)-视频笔记

目录 视频链接 P1:电子设备中有哪些主要骚扰源 P2:怎样减小DC模块的骚扰 P3:PCB上的辐射源究竟在哪里 P4:怎样控制PCB板的电磁辐射 P5:多层线路板是解决电磁兼容问题的简单方法 P6:怎样处理地线上的裂缝 P7:怎样降低时钟信号的辐射 P8:为什么IO接口的处理特别重要 P9…

数据结构——用链表实现Map

目录 一、映射&#xff08;Map&#xff09; 二、代码实现 1.建立接口 2.方法实现 &#xff08;1&#xff09;映射的建立 键&#xff08;key&#xff09;和值&#xff08;val&#xff09;的建立 重写toString方法 &#xff08;2&#xff09;构造方法 &#xff08;3&…

102.乐理基础-五线谱-高音谱号

内容参考于&#xff1a;三分钟音乐社 上一个内容&#xff1a;五线谱的构造、谱号是什么-CSDN博客 谱号一共需要学习和了解四种&#xff0c;如下图&#xff1a;要牢牢掌握的是高音谱号和低音谱号这两种&#xff0c;如图1所示 首先高音谱号&#xff1a; 它大致范围&#xff0c;…

yield关键字

如果是第一次遇到这个关键字&#xff0c;可以直接使用下文中小标题为Next的代码设置断点看一下效果 带yield的函数是一个生成器&#xff0c;而不再是一般意义上的一个函数。yield在函数中的功能类似于return&#xff0c;不同的是yield每次返回结果之后函数并没有退出&#xff…