`
ekumen
  • 浏览: 104965 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

优先考虑静态成员类

    博客分类:
  • java
阅读更多
    如果声明的成员类不要求访问外围实例, 那么应该使他成为一个静态成员类. 如果省略了static修饰符,则每个实例都将包含一个额外的指向外围对象的引用. 维护这份引用要消耗时间和空间, 又没有相应的好处. 如果在没有外围实例的情况下,也要分配实例的话,则不能使用非静态成员类,因为非静态成员类的实例必须要有一个外围实例.
    例如Map实例,内部有一个Entry对象对应于Map中的每一对键-值.虽然每一个Entry都与一个Map关联,但是Entry上的方法(getKey,getValue和setValue)并不需要访问该Map. 因此使用非静态成员来表示Entry是很浪费的,私有的静态成员类是最佳选择.
分享到:
评论

相关推荐

    突破程序员基本功的16课.part2

    7.6.2 非静态内部类不能拥有静态成员 7.6.3 非静态内部类的子类 7.7 static关键字 7.7.1 静态方法属于类 7.7.2 静态内部类的限制 7.8 native方法的陷阱 7.9 小结 第8课 异常捕捉的陷阱 8.1 正确关闭资源的...

    编译原理(第2版)课件

    14.2.2 面向对象语言的有效类、延迟类及延迟成员 14.2.3 面向对象语言的类属类 14.2.4 面向对象语言的继承类 14.3 多态实例变量、多态引用的类型检查及绑定 14.3.1 实例变量和多态引用 14.3.2 静态类型检查及动态...

    C#与.NET技术平台实战演练.part2

    4-3 数据封装的目的8-5 使用静态成员8-5-1 声明及初始化静态数据8-5-2 使用静态方法8-5-3 静态成员使用准则8-6 C#与面向对象8-6-1 再探HelloWorld8-6-2以static定义Main8-7定义类与建立实体this操作数8-8...

    C#与.NET技术平台实战演练.part1

    4-3 数据封装的目的8-5 使用静态成员8-5-1 声明及初始化静态数据8-5-2 使用静态方法8-5-3 静态成员使用准则8-6 C#与面向对象8-6-1 再探HelloWorld8-6-2以static定义Main8-7定义类与建立实体this操作数8-8...

    数据结构(C++)有关练习题

    2、 为该类分别设计一个实现深度优先搜索和广度优先搜索的成员函数,并要输出搜索结果; 注: 1、为了让你设计的图类拥有数据,可以设计一个成员函数,用于构造你自己预先设计好的图; 2、要求的图如下,...

    微软活动目录管理管理简明手册

    LDAP命名的路径是用来访问活动目录对象的,它包括了下面的两类:% T* B4 E: k( {8 ^ 9 U& n1 d0 J; Q: q, w1 O. t+ k1 z (1)标识名(Distinguished Name): ; n! e# H# Q; X' J 7 k& D: |( n5 V! b+ v+ T d/ R在活动...

Global site tag (gtag.js) - Google Analytics