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

优先考虑静态成员类

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

相关推荐

    全局数据管理—使用C++类的静态成员取代全局数据

    全局数据管理是软件开发中的一个重要话题,特别是在多线程和并发环境下,确保数据的安全性和一致性至关重要。...在设计软件时,尤其是在处理共享数据时,应优先考虑使用静态成员来实现全局数据管理。

    EFFECT JAVA 中文

    8. **优先考虑静态成员类**:内部类提供了封装,但非静态(成员)内部类隐含持有对外部类的引用,可能导致内存泄漏。静态成员类则不持有这种引用,更适合表示与外部类关系不那么紧密的概念。 9. **序列化**:讨论了...

    手工聚合、静态lacp、动态lacp差异.docx

    - 对于初始处于DOWN状态的端口,汇聚时不考虑速率和双工模式。 - 对于曾经处于UP状态并设置了速率和双工模式但当前处于DOWN状态的端口,要求速率和双工模式一致。 - 汇聚组中端口的速率和双工模式变化不会导致解汇聚...

    Java面向对象设计最佳实践_-_内置类设计

    - 当类的实例与外部类实例有紧密关联时,优先考虑成员内部类。 - 对于仅在某方法内部使用的类,选择局部内部类。 - 若类与外部类之间无实例关联,且希望避免内存泄漏,应使用静态嵌套类。 - 匿名内部类适合实现...

    基于PHP静态类的原罪详解

    这意味着在设计和编码时,应该优先考虑面向对象的原则,例如继承、封装和多态性,以构建出更灵活、更可维护的代码库。同时,也应该注意不要过度使用静态方法,特别是当它们可能导致代码耦合或测试困难时。 在PHP中...

    java 匿名内部类的使用规范

    在可能的情况下,优先考虑使用普通的命名类。 6. **代码可读性** 保持代码的清晰和易读是编程的重要原则。如果匿名内部类过于复杂,或者它的功能可以独立出来成为一个完整的类,那么最好还是定义一个单独的类。 ...

    Java使用static

    4. **内存效率**:由于静态方法不会随着对象的创建而创建副本,所以在资源有限的情况下,可以优先考虑使用。 三、静态初始化块(Static Initialization Blocks) 1. **初始化**:静态初始化块在类加载时执行,用于...

    友元函数详解.docx

    - 友元函数可以访问类的所有私有和保护成员,但不能直接访问静态成员,因为静态成员属于类本身而非类的对象。 总之,友元函数是C++中一种强大的工具,用于处理特定的访问控制问题,但在使用时需谨慎,以防止过度...

    Java基础知识总结大全

    - 静态方法只能访问静态成员,不可以访问非静态成员。 - 静态方法中不能使用`this`或`super`关键字。 - **静态的局限性**: - 静态方法加载时,可能还没有对象存在,因此无法访问对象中的成员。 - 静态变量不能...

    QT 使用全局变量的方法 - 郭小郭的专栏 - CSDN博客1

    4. **使用静态成员**:如果确实需要全局变量,优先考虑使用静态成员变量,因为它们与类相关联,提供了更好的封装。 5. **考虑使用单例模式**:对于复杂的全局状态,可以使用单例模式来创建一个全局访问点,同时保持...

    C++中类使用全局变量

    6. **封装**:如果一个变量需要在多个类之间共享,考虑使用静态成员变量或使用指针或引用传递,而不是全局变量。 总之,虽然全局变量在某些情况下可以简化代码,但过度依赖全局变量会导致代码难以理解和维护。在...

    (整理)C++程序的结构典型案例..pdf

    在C++编程中,程序的结构是至关重要的,它决定了...在实际编程中,应谨慎使用全局变量,优先考虑局部变量和参数传递,以减少副作用和提高代码质量。同时,合理利用静态变量可以实现特定的功能,如累加器、计数器等。

    Java学习总结(2023/03/19)

    3. 优先考虑使用静态成员类。 4. 使用final、static和private修饰符来防止意外的类初始化。 5. 尽量避免使用原始类型数组,而是使用泛型集合。 6. 使用泛型编写类、方法和接口。 7. 避免在public API中使用可变对象...

    C++工程实践经验

    - 考虑到维护性和可读性:应优先考虑使用局部作用域或命名空间嵌套等方式来限制作用域。 - 版本控制友好:保持代码格式一致性有助于版本控制工具更好地追踪变更历史。 **结论:**虽然匿名namespace提供了一种实用...

    HTML12-Device模板官网落地页APP主页产品宣传页源码 landing静态页面.zip

    2. **移动优先策略**:在设计时,先考虑移动端用户的体验,然后扩展到更大的屏幕。这样确保了在有限的屏幕空间内,最重要的信息仍能清晰地传达。 3. **用户体验**:页面加载速度、导航的直观性和交互的友好性都是...

    java1-6章测试题目.pdf

    51. **静态内部类与非静态内部类**:静态内部类可以有静态成员,因为它独立于外部类实例,而非静态内部类不能,因为它们依赖于外部类实例。 52. **javabean**:遵循一定规范的Java类,用于数据传输或模型表示,具有...

    Java解惑ppt5

    《Java解惑PPT5》深入探讨了...4. 当涉及到共享状态(如计数)时,优先考虑使用非静态成员或对象组合,以保持数据隔离。 通过深入理解这些概念,开发者可以编写出更清晰、更健壮的Java代码,避免潜在的陷阱和错误。

    Java中类与类之间的关系

    通常建议优先考虑使用组合而不是继承,原因有几点: - **封装性**:使用组合可以更好地保持类之间的封装性,因为每个类都专注于自己的职责。 - **灵活性**:组合提供了更高的灵活性,因为可以轻松地替换或修改组件...

    面向对象程序设计第06章在线测试.pdf

    类模板可以含有静态成员,但是它们不参与模板的实例化,即静态成员在所有模板实例之间是共享的。 4. **模板参数**:模板参数分为类型参数(如`T`)和非类型参数。类型参数用于表示任意类型,可以用来指定类或函数的...

Global site tag (gtag.js) - Google Analytics