软件设计师(原高级程序员)复习资料
是面向网络的语言。通过它提供的类库可以处理 1+3!+ 协议 用户 可以通过 42 地址在网络上
很方便地访问其它对象。
丰富的类库:
语言包提供的支持包括字符串处理、多线程处理、例外处理、数学函数处理等 。
实用程序包提供的支持包括哈希表、堆栈、可变数组、时间和日期等。
输入输出包用统一的 “流 ”模型来实现所有格式的 !3包括文件系统、网络、输入
低级网络包用于实现 编程。
抽象图形用户接口包实现了不同平台的计算机的图形用户接口部件
网络包支持 ! 的 1+3!+ 协议 提供了接口。
面向对象程序设计——对象、类与实体
“对象”译自英文的“5#6,现实世界实际上是由 5# 组成的,我们看到的一切都是 5#。程序设
计语言为解决现实世界的问题而存在,因此,我们自然会想到,让程序设计按照我们平常看世界的方式运
作,这样才最自然,这就是面向对象的程序设计的出发点。
面向对象程序设计,确切的说,对象是现实世界的某个具体的物理实体在计算机逻辑中的映射和体现。比
如:每个人都是一个具体存在的实体,有高度、体重等很多属性,也有走路、工作等很多行为。这样的实
体在程序设计中可以表达为计算机可以理解和操作的对象。
类:每个对象都是属于某种类别的。也就是说类是同种对象的集合与抽象。属于类的某个对象被称为
是类的一个实例。
对象的状态与行为:对象的状态也称为静态属性。用计算机术语来说也就是变量。每个对象都有自己
专有的变量。比如,具体的一个人,有身高、体重等。
对象的行为也称为动态属性,在计算机内部用方法来表示。比如,人有走路、工作的行为。
对象的关系:
包含:当对象 $ 是对象 的属性的时候,称对象 包含对象 $。比如电脑与主板
继承:当对象 $ 是对象 的特例的时候,称对象 $ 继承了对象 。比如,鲤鱼是鱼的一种特例。
关联:对象 $ 的引用是对象 的属性,$ 和 之间是关联关系。
和 、 之间的比较:
对于变量声明、参数传递、操作符、流控制等 使用了和 、 相同的传统 使得熟悉 、
的程序员能很方便地进行编程。同时 为 实现其简单、安全等特性 也摒弃了 和 中许多不
合理的内容。
全局变量: 程序中 不能在所有类之外定义全局变量 只能通过在一个类中定 义公用、静态的变量来
实现一个全局变量。例如 '
578
%955:/;
在类 57 中定义变量 5: 为 %95使得其它类 可以访问和修改该变量。 对全局
变量进行了更好的封装。而在 和 中 依赖于不加封装 的全局变量常常造成系统的崩溃。
语句: 不支持 、 中的 语句 而是通过例外处理语句 <= 等来代替 、
中用 来处理遇到错误时跳转的情况 使程序更可读 且更结构化。
指针:指针是 、 中最灵活 也是最容易产生错误的数据类型。由指针所进行的内存地址操作常会
造成不可预知的错误 ,从而破坏安全性 造成系统的崩溃。而 对指针进行完全的控制 程序员不能直接进
行任何指针操作。同时 数组作为类在 中实现 良好地解决了数组访问越界这一 、 中不作检查的
错误。
内存管理:在 中 程序员通过库函数 和 >来分配和释放内存 中则通过运算符 ? 和
@ 来分配和释放内存。再次释放已释放的内存块或未被分配的内存块 会造成系统的崩溃 /同样 忘记释放
不再使用的内存块也会逐渐耗尽系统资源。而在 中 所有的数据结构都是对象 通过运算符 ?为它们
分配内存堆。通过 ? 得到对象的处理权 对此自动地进行管理并且进行垃圾收集 有效防止了由于程序
员的误操作而导致的错误 并且更好地利用了系统资源。
数据类型的支持:在 、 中 对于不同的平台 编译器对于简单数据类型如 A等分别分配不
同长度的字节数 例如' 在 !+ 中为 B 位 在 7$C) 中为 *( 位 这导致了代码的不可移植性 但在
中 对于这些数据类型总是分 配固定长度的位数 如对 型 它总占 *( 位 这就保证了 的平台无
关性。
类型转换:在 、 中 可以通过指针进行任意的类型转换,而 中 运行时系统对对象的处理要进行
类型相容性检查 以防止不安全的 转换。
头文件:、 中用头文件来声明类的原型以及全局变量、库函数等 在大的系 统中 维护这些头文件
是很困难的。而 不支持头文件 类成员的类型和访 问权限都封装在一个类中 运行时系统对访问进行控制
防止对私有成员的操作。同时 中用 % 语句来与其它类进行通讯 以便使用它们的方法。
结构和联合:、 中的结构和联合中所有成员均为公有 这就带来了安全性问题。 中不包含结构和
联合 所有的内容都封装在类中。
预处理:、 中用宏定义来实现的代码给程序的可读性带来了困难。在 中 不支持宏 它通过
关键字 = 来声明一个常量 以实现宏定义中广泛使 用的常量定义。
简 单 的 程 序:
共 29 页 第 页
评论