读书笔记
第一章 对象导论
因为类描述了具有相同特征(数据元素、静态)和行为(功能、动态)的对象集合。
表示紧随其后的元素对任何人都是可用的,而 这个关键字表示除类型创
建者和类型的内部方法之外的任何人都不能访问的元素。 就像你与客户端程序
之前的一堵砖墙,如果有人试图访问 成员,就会在编译时得到错误信息。篇
关键字与 作用相当,差别仅在于继承的类可以访问 成员,
但是不能访问 成员。 中还有包访问权限。
在使用对象时,最关键的问题之一便是它们的生成和销毁方式。每个对象为了生存
都需要资源,尤其是内存。在堆栈中创建存储空间和释放存储空间通常各需要一条汇
编指令即可,分别对应将栈顶指针向下移动和将栈顶指针向上移动。创建堆存储空间
的时间依赖于存储机制的设计。
第二章 一切都是对象
用引用操纵对象(用地址指针操纵对象)
操纵的标识符实际上是对象的一个“引用”(。或者叫“地址”,句柄的
东西。
你拥有一个引用,并不一定需要有一个对象与它关联。
如:
如果向 发送一个消息,就会返回一个运行时错误。一种安全的做法就是:创建
一个引用的同时便进行初始化(强烈建议)。如:
必须由你创建所有对象。
2.2.1 存储到什么地方
寄存器。
栈。位于通用 (随机访问存储器):一级 ,二级 虽然某些
数据存储在堆栈中——特别是对象引用,但是 对象不存储其中。â
! 堆(heap)。一种通用性的内存池(也存在于 中),用于存放所有的
对象(对象本身)。堆不同于堆栈的好处是:编译器不需要知道要从堆里分
配多少存储区域,也不必知道存储的数据在堆里存活多长时间。因此,在堆里分
配存储有很大的灵活性。当你需要创建一个对象的时候,只需要 写一行简单
的代码,当执行这行代码时,会自动在堆里进行存储分配。当然,为这种灵活性
必须要付出相应的代价"用堆进行存储分配比用栈进行存储存储需要更多的时间。â
# 静态存储($)。这里的“静态”是指“在固定的位置”。静态存储里存
放程序运行时一直存在的数据。你可用关键字 来标识一个对象的特定元素
是静态的,但 对象本身从来不会存放在静态存储空间里。â
% 常量存储($$)。常量值(&'程序代码内部,这样做是安全
的,因为它们永远不会被改变。有时,在嵌入式系统中,常量本身会和其他部分
分割离开,所以在这种情况下,可以选择将其放在 ROM 中â(从硬盘加载源代
码)
评论0
最新资源