JohnCusack 2015-04-07 07:40 采纳率: 100%
浏览 1747
已采纳

关于static内部类的细节

请先看这个程序:http://algs4.cs.princeton.edu/13stacks/Bag.java.html
菜鸟提问,为什么内部类声明成了static?有什么作用么?

  • 写回答

3条回答 默认 最新

  • 清水依恋成 2015-04-07 07:50
    关注

    static关键字内部类,目的是告诉虚拟机只有一份变量声明。
    private static class Node {
    private Item item;
    private Node next;
    }
    这段代码其实不论在bag当前文件内,还是由一个别的java文件单独声明,虚拟机不会因为当前bag实例的不同时间点的初始化单独创建一份了。
    但这里这样写还有一个别的目的,就是在用到bag这个类的时候才告诉虚拟机“node这个类只要初始化一次”就可以了。
    如果将node这个类以单独文件,那么虚拟机在启动java运行时就执行了“node这个类只要初始化一次”这样的操作了。
    详细设计上写法的区别也就是上面的区别。目的就是用到的时候才声明去解释一些事情。希望这样的描述对你有用。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 表达式必须是可修改的左值
  • ¥15 如何绘制动力学系统的相图
  • ¥15 对接wps接口实现获取元数据
  • ¥20 给自己本科IT专业毕业的妹m找个实习工作
  • ¥15 用友U8:向一个无法连接的网络尝试了一个套接字操作,如何解决?
  • ¥30 我的代码按理说完成了模型的搭建、训练、验证测试等工作(标签-网络|关键词-变化检测)
  • ¥50 mac mini外接显示器 画质字体模糊
  • ¥15 TLS1.2协议通信解密
  • ¥40 图书信息管理系统程序编写
  • ¥20 Qcustomplot缩小曲线形状问题