`
mjgforever
  • 浏览: 5667 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
最近访客 更多访客>>
社区版块
存档分类
最新评论

Initialization & Cleanup

 
阅读更多

1 Guaranteed initialization with the constructor
    自动调用构造函数,给类中属性自动赋值。

2 方法重载 Method overloading
  方法重载主要是根据方法中参数的不同或者返回值的不同的几个同名方法。
  2.1 Distinguishing overloaded methods
  2.2 Overloading with primitives
      匹配采用自动匹配的方式,就近原则。char有点不同,如果找不到匹配的,就采用int,如果没有就找long、float、double。
  2.3 Overloading on return values

3 Default constructors
    当定义了构造函数,默认的构造函数将消失。
4 The this keyword
    Banana a = new Banana(),
           b = new Banana();
    a.peel(1);
    b.peel(2);
    // 会自动解释为:
    Banana.peel(a, 1);
    Banana.peel(b, 2);
   
    this关键字用在非static方法的内部,代表对象的引用。必须注意不要滥用。
    this关键字一般用于返回自身和将自身传递给外部方法。

  4.1 Calling constructors from constructors
      Flower(String s, int petals) 我们可以采用this关键字调用构造函数this(petals),但不可以再写this(s),只能写this.s = s;
  4.2 The meaning of static
      静态方法就想全局方法,不面向对象。对于静态方法我们无需传递消息给对象,所以也就没有this的使用了。
5 Cleanup: finalization and garbage collection
    垃圾回收器只负责回收使用new关键字创建的对象,对于不使用new关键字创建的对象,Java提供了finalize方法。
  5.1 What is finalize() for?
        一般情况下,不需要使用。
  5.2 You must perform cleanup
        在C++中,必须执行销毁,但在java中,即使使用了垃圾回收器或finalize也不能保证内存已经回收。
  5.3 The termination condition
        super.finalize(); // Call the base-class version
        System.gc();
       
  5.4 How a garbage collector works
    了解了一些垃圾回收的方式,优点地方没有完全看明白。

6 Member initialization
    类中的成员会自动初始化,但在过程中定义的变量,必须显示初始化。
  6.1 Specifying initialization

7 Constructor initialization
  7.1 Order of initialization
        首先初始化类中的成员,然后再初始化类中的构造函数。
  7.2 static data initialization
        静态成员的初始化只有在第一次创建对象的时候才执行,以后将不再被重新初始化。
        首先是初始化静态成员,然后是非静态成员,最后是构造函数。
  7.3 Explicit static initialization
        static Cup cup1;
        static Cup cup2;
        static {
            cup1 = new Cup(1);
            cup2 = new Cup(2);
        }

  7.4 Non-static instance initialization
        Mug mug1;
        Mug mug2;
        {
            mug1 = new Mug(1);
            mug2 = new Mug(2);
            print("mug1 & mug2 initialized");
        }

8 Array initialization
  8.1 Variable argument lists

9 Enumerated types
    for(Spiciness s : Spiciness.values())
        System.out.println(s + ", ordinal " + s.ordinal());

10 Summary
    主要介绍初始化方面的信息。另外介绍了垃圾回收器。

分享到:
评论

相关推荐

    Think in C++ 英文版(含卷一、卷二)

    6: Initialization & Cleanup 7: Function Overloading & Default Arguments 8: Constants 9: Inline Functions 10: Name Control 11: References & the Copy-Constructor 12: Operator Overloading 13: Dynamic ...

    TIJ4 Initialization Cleanup

    TIJ4 Initialization Cleanup

    Thinking_In_C#英文正式版

    第5章“Initialization & Cleanup”(初始化与清理)涉及对象的构造函数和析构函数,以及资源清理的重要性。第6章“Coupling and Cohesion”(耦合与内聚)则探讨了设计模块化程序的指导原则,这是编写可维护代码的...

    Think in C# .Net

    5. **第 5 章:Initialization & Cleanup** —— 阐述了对象初始化和清理的相关知识,包括构造函数、析构函数等。 6. **第 6 章:Coupling and Cohesion** —— 分析了模块之间的耦合性和内聚性,解释了良好的软件...

    think in C sharp

    初始化与清理 (Initialization & Cleanup) - **第5章:初始化与清理**(151页)讨论了对象生命周期管理,包括构造函数、析构函数等。 #### 6. 耦合与内聚 (Coupling and Cohesion) - **第6章:耦合与内聚**(215页...

    Thinking in CSharp

    - **第五章:初始化与清理**(Initialization & Cleanup):本章着重于C#中的对象生命周期管理,包括如何初始化对象以及在对象不再需要时如何进行适当的清理工作,这对于避免内存泄漏等问题至关重要。 - **第六章:...

    thinking in Java guide solutio

    Initialization & Cleanup (初始化与清理) - **初始化过程**:对象创建后如何进行初始化。 - **析构函数**:虽然Java没有析构函数,但可以通过finalizer实现类似的功能。 - **静态初始化块与非静态初始化块**:分别...

    Thinking in C++ VolumeI.pdf

    初始化与清理 (Initialization & Cleanup) 本章详细介绍了对象的初始化和清理过程: - **构造函数与析构函数**:解释了构造函数和析构函数的作用及使用方法。 - **内存管理**:讨论了内存分配和释放的重要性,以及...

    ucln_cmn.rar_UP

    它可能会包含函数声明,如`void ucln_cmn_init()`(初始化清理机制)和`void ucln_cmn_cleanup()`(执行清理操作)。此外,可能还会有枚举类型定义来标识不同类型的清理事件,或者是宏定义以控制调试信息的开关。 2...

    Defer:C的Defer陈述式

    int x __attribute__((cleanup(cleanup))) = 42; // ... return 0; } ``` 虽然这些方法可以实现类似`defer`的功能,但它们并没有内置的异常处理支持。在C++中,可以使用RAII(Resource Acquisition Is ...

    nls_cp863.rar_translation

    5. **Initialization and Cleanup**:初始化和清理函数,用于加载和卸载转换模块。 6. **Testing and Debugging**:可能包含一些测试用例和调试辅助函数,确保转换的准确性和兼容性。 在实际应用中,这样的转换库...

    C语言函数大全.CHM

    C语言函数大全,CHM,中文版。 C语言各种函数具体描述,有例证. 函数名: bar 功 能: 画一个二维条形图 用 法: void far bar(int left, int top, int right, int .../* clean up */ closegraph(); return 0; }

    python code patterns

    ### Initialization and Cleanup (初始化与清理) #### Initialization (初始化) - **构造函数**:使用`__init__`方法完成对象创建时的初始化工作。 - **属性设置**:在构造函数中为对象设置初始状态。 - **其他初始...

Global site tag (gtag.js) - Google Analytics