`
darrendu
  • 浏览: 195701 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

06优先考虑静态成员类

 
阅读更多

1.嵌套类有四种:静态成员类、非静态成员类、匿名类和内部类

 

2.静态成员类可以访问外围类的所有成员,包括那些声明为私有的成员。静态成员类是外围类的一个静态成员,与其他静态成员一样,遵守同样的可访问性规则

 

3.非静态成员类的每个实例都隐含着与外围类的一个外围实例相关联。在没有外围实例的情况下,要想创建非静态成员类的实例是不可能的。

 

4.当非静态成员类的实例被创建的时候,它和外围实例之间的关联关系也随之被建立起来,而且,这种关系以后不能被修改。这种关联关系需要消耗非静态成员类实例的空间,并且增加了构造的时间开销。

 

5.如果声明成员类不要求访问外围实例,就要始终把static修饰符放在它的声明中,使他成为静态成员类,而不是非静态成员类。如省略了static,则每个实例都将包含一个额外外围对象的引用。保存这个引用要消耗时间和空间,并且会导致外围实例在符合垃圾回收时却仍然得以保留。

 

6.匿名类必须保持简短,大约10行或更短

分享到:
评论

相关推荐

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

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

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

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

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

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

    基于PHP静态类的原罪详解

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

    java 匿名内部类的使用规范

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

    Java使用static

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

    友元函数详解.docx

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

    Java基础知识总结大全

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

    EFFECT JAVA 中文

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

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

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

    C++中类使用全局变量

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

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

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

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

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

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

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

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

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

    java1-6章测试题目.pdf

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

    Java解惑ppt5

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

    Java中类与类之间的关系

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

Global site tag (gtag.js) - Google Analytics