热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

可能会_静态方法中不可直接new内部类实例对象问题

篇首语:本文由编程笔记#小编为大家整理,主要介绍了静态方法中不可直接new内部类实例对象问题相关的知识,希望对你有一定的参考价值。结论:静态方法中ÿ

篇首语:本文由编程笔记#小编为大家整理,主要介绍了静态方法中不可直接new内部类实例对象问题相关的知识,希望对你有一定的参考价值。


结论:静态方法中,是不可以直接new内部类实例对象和引用外部类的成员变量的。

原因:1、外部类中的成员变量、方法以及内部类其实三者都在同一个级别上,三者都必须由外部类的实例对象才能调用(举例:当一个方法被调用时,此时肯定已经有了外部类的实例对象。),故而他们三者可以互相引用。

2、而静态main方法因为其方法为静态,在类编译时,便生成了该静态方法,故而其运行不依赖于外部类的实例对象,因为内部类要依赖于外部类的实例对象才能创建,所以在该静态方法中直接new内部类肯定会报错;而在其他普通方法中可以new内部类,因为其他的普通方法必须有了外部类的实例对象,才能可能会调用该方法,既然有了实例对象,在普通方法中便能直接new内部类了。

解决办法:方式1:既然new内部类需要外部实例对象,那就直接在静态main方法中先实例化一个外部类对象,再用外部类对象new内部类。

方式2:既然静态方法不能直接new内部类,那就把它放到普通方法中直接new,然后再在静态main方法中,让外部类的实例对象,调用该普通方法。

方式3:可以将这个内部类改成静态内部类,则该内部类就成了不依附外部类实例对象的成员了,那么他就可以自由实例化了

原文:https://blog.csdn.net/aizhihua19900214/article/details/79714235 
 


推荐阅读
author-avatar
arliejun
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有