java静态内部类和非静态内部类的区别_静态内部类有什么问题

java静态内部类和非静态内部类的区别_静态内部类有什么问题一、非静态内部类:1、变量和方法不能声明为静态的。(类的编译顺序:外部类–静态方法或属性–内部类,如果内部类声明为静态的,造成编译顺序冲突。个人理解)2、实例化的时候需要依附在外部类上面。比如:B是A的非静态内部类,实例化B,则:A.Bb=newA().newB();3、内部类可以引用外部类的静态或者非静态属性或者方法。二、静态内部类:1、属性和方法可以声明为静态的或者非静态的…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

一、非静态内部类:

1、变量和方法不能声明为静态的。(类的编译顺序:外部类–静态方法或属性–内部类,如果内部类声明为静态的,造成编译顺序冲突。个人理解)

2、实例化的时候需要依附在外部类上面。比如:B是A的非静态内部类,实例化B,则:A.B b = new A().new B();

3、内部类可以引用外部类的静态或者非静态属性或者方法。

二、静态内部类:

1、属性和方法可以声明为静态的或者非静态的。

2、实例化静态内部类:比如:B是A的静态内部类,A.B b = new A.B();

3、内部类只能引用外部类的静态的属性或者方法。

4、如果属性或者方法声明为静态的,那么可以直接通过类名直接使用。比如B是A的静态内部类,b()是B中的一个静态属性,则可以:A.B.b();

三、关于java静态方法的相关总结:

一个类的静态方法只能访问静态属性(静态方法是属于类的,而普通方法是属于对象的。)

一个类的静态方法不能够直接调用非静态方法;
如访问控制权限允许,static 属性和方法可以使用类名加“.”方式调用;当然也可以使用实例加“.”方式调用;
静态方法中不存在当前对象,因而不能使用“this”,当然也不能使用”super”;
静态方法不能被非静态方法覆盖;
构造方法不允许声明为 static 的;
局部变量不能使用static修饰;

问题:为什么一个类的静态方法只能访问静态属性或静态方法?

回答:静态方法是属于类的,而普通方法是属于对象的。
属于类的静态方法可以在对象不存在的时候就能访问到,而普通方法必须先new一个对象才能用这个对象访问
。当我们访问调用静态方法的时候(使用类名.静态方法名)这个时候就没有对象创建,所以普通方法是访问不到的。
为了避免这种错误,所以java就不允许在静态方法中访问非静态方法。可以想一下main方法。

原文地址:http://www.cnblogs.com/aademeng/articles/6192944.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/183257.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • zynq双核运行设计_zynq udp

    zynq双核运行设计_zynq udp前面文章讲解了《zynq高速存储方案》,那种方案是针对单个pciehost设计的方案,当项目需求记录速度很高,并且没有国产化要求时,可以考虑使用ZynqUltraScale+系列的ZU11EG芯片,该芯片成本低,且支持4个PCIe硬核,可以将该4个pcie都配置成host模式,在每个host下挂载pcie3.0x4的SSD固态硬盘,这样每个pciehost能够跑的速率就是ssd盘能够支持的最大速率,如果选择三星的SSD盘,那么PCIe3.0x4读写速率能够到3GB/s,那么4个…

    2022年9月1日
    3
  • 介绍篇 决策引擎环节

    介绍篇 决策引擎环节决策引擎概念简述在我理解上决策引擎类似是一个管道、运输系统,连通整个风控流程,所有的规则和评分卡以及流程都覆盖其中,分配到每一个环节(比如人工),将结果返回给决策引擎,走入下一个流程决策引擎的使用规则决策引擎的分流效果评分卡是内置在决策引擎当中,基于评分卡的分段,评分卡的使用具体参见:评分卡在策略中的使用,进行分流,分流决策的目的是为让好客户以及有借款欲望客户进一步走入下一流程决策引擎…

    2022年6月22日
    37
  • visual studio运行程序的快捷键_visual studio快捷方式在哪

    visual studio运行程序的快捷键_visual studio快捷方式在哪目录一、系统快捷键二、常用系统命令三、QQ快捷键四、IE浏览器快捷键使用大全五、Word 中的快捷键六、Excel 中的快捷键七、PowerPoint 中的快捷键八、Visual Studio九、Eclipse十、Photoshop十一、批处理指令十二、安装操作系统(此快捷操作对我们程序员十分重要,所以放在前面)八、Visual Studio8.1、项目相关的快捷键…

    2022年8月18日
    5
  • 光纤交换机配置zone[通俗易懂]

    光纤交换机配置zone[通俗易懂]B系列SAN交换机-Zoning配置信息型本文档提供了BrocadeSAN交换机zoning配置的分步骤指南。详细信息新建zone配置:a. 新建一个zoning配置,用cfgcreate命令。格式:cfgcreate“cfgname”,“zonename1;zonename2;…”举例:cfgcreate“cfg1”,“zone1;zone2”b. 新建一个zone,用zonecreate命令。格式:zonecreate“zone

    2022年5月22日
    36
  • 单工半双工和全双工的区别_什么是单工双工半双工

    单工半双工和全双工的区别_什么是单工双工半双工一、单工1、数据只在一个方向上传输,不能实现双方通信。2、栗子:电视、广播。二、半双工1、允许数据在两个方向上传输,但是同一时间数据只能在一个方向上传输,其实际上是切换的单工。2、栗子:对讲

    2022年8月2日
    6
  • linuxnodejs安装及环境配置_nodejs不是内部外部命令

    linuxnodejs安装及环境配置_nodejs不是内部外部命令安装环境本机系统:Windows10Pro(64位)Node.js:14.17.5(64位)安装Node.js步骤《1》下载对应你系统的Node.js版本:https://nodejs.org/en/download/《2》选安装目录进行安装《3》环境配置《4》测试前期准备(1)进入官网下载地址下载Node.js(2)如果要下载指定版本既可选择下边链接开始安装(1)下载完成后,双击“node-v6.9.2-x64.msi”,开始安装Nod..

    2022年9月15日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号