OOP 只是涉及抽象的数据类型、继承已经Polymorphism 多形性。
1. 最重要的问题之一是对象的创建及破坏方式.
对象需要的数据位于哪儿,如何控制对象的“存在时间”。
在内存池中动态创建对象,该内存池亦叫”堆“ 或者”内存堆“。
对象的数量,存在时长,准确的类型,这些参数都在程序正式运行时才决定的。
2. 若需要一个新对象,只需在需要它的时候在内存堆里简单地创建它即可。
存储空间的管理是运行期间动态进行,所以在内存堆里分配存储空间的时间比在堆栈里创建的时间长的多
(在堆栈里创建存储空间一般只需要一个简单的指令;将堆栈指针向下或向下移动即可)。
由于动态创建方法使对象本来就倾向于复杂,所以查找存储空间以及释放它所需的额外开销不会为对象的创建造成明显影响。
3. 在堆栈或这静态存储空间里创建一个对象,编译器会判断对象的持续时间有多长,到时会自动”破坏“或者”清除“它。
1)用程序化的方式决定何时破坏对象。
2)利用由运行环境提供的一种”垃圾收集器"特性--GC