程序的质量主要受到程序设计的方法、技术及风格等因素的影响。“清晰第一、效率第二”是当今主导的程序设计风格,即首先要保证程序的清晰、易读,其次考虑提高程序的执行速度、节省系统资源。
要形成良好的程序设计风格,主要应注重和考虑下述因素。
① 源程序文档化。
② 数据说明风格:次序应规范化;变量安排有序化;使用注释来说明复杂数据的结构等。
③ 语句的结构:不要在同一行内写多个语句;首先保证程序正确,然后提高速度;尽可能使用库函数;避免不必要的转移等。
④ 输入和输出:对所有的输入数据都要进行检验,确保输入数据的合法性;在采用交互式输入/输出方式进行输入时,在屏幕上使用提示符明确提示输入的请求,同时在数据输入过程中和输入结束时,应在屏幕上给出状态信息;给所有的输出加注释,并设计良好的输出报表格式等。
就程序设计方法的发展而言,主要经历了结构化程序设计和面向对象的程序设计这两个阶段。
结构化程序设计的重要原则是自顶向下、逐步求精、模块化及限制使用goto语句。
结构化程序设计方法是使用“顺序结构”“选择结构”及“循环结构”3种基本结构就足以表达其他各种结构的程序设计方法。它们的共同特征是:严格地只有一个入口和一个出口。
遵循结构化程序的设计原则,按此原则设计出的程序具有以下优点。
● 程序易于理解、使用及维护。
● 提高了编程工作的效率,降低了软件开发成本。
● 与人类习惯的思维方法一致。
● 稳定性好。
● 可重用性好。
● 便于开发大型软件产品。
● 可维护性好。
(1)对象。
面向对象方法中的对象由两部分组成。
① 数据,也称为属性,即对象所包含的信息,表示对象的状态。
② 方法,也称为操作,即对象能执行的功能、所具有的行为。
对象的基本特点如表2.14所示。
表2.14 对象的基本特点
(2)类和实例。
类(class)是具有共同属性、共同方法的对象的集合,是关于对象的抽象描述,反映属于该对象类型的所有对象的性质。一个具体对象则是其对应类的一个实例(instance)。
例如,“大学生”是一个大学生类,它描述了所有大学生的性质。因此,任何大学生都是类“大学生”的一个对象(这里的“对象”不可以用“实例”来代替),而一个具体的大学生“张三”是类“大学生”的一个实例。
类是关于对象性质的描述,它同对象一样,包括一组数据属性和在数据上的一组合法操作。
(3)消息。
消息(message)传递是对象间通信的手段,一个对象通过向另一个对象发送消息来请求其服务。
(4)继承。
在面向对象的程序设计中,类与类之间可以继承,一个子类可以直接继承其父类的全部描述(数据和操作)。这些属性和操作在子类中不必定义。此外,子类还可以定义它自己的属性和操作。
如“四边形”类是“矩形”类的父类,“四边形”类可以有“顶点坐标”等属性,有“移动”“旋转”“求周长”等操作。“矩形”类除了继承“四边形”类的属性和操作外,还可定义自己的属性和操作,如“长”“宽”等属性和“求面积”等操作。
继承具有传递性,如果类Z继承类Y,类Y继承类X,则类Z继承类X。
需要注意的是,类与类之间的继承应根据需要来做,并不是任何类都要继承。
(5)多态性。
在面向对象的软件技术中,多态性是指子类对象可以像父类对象那样使用,同样的消息(如方法)既可以发送给父类对象也可以发送给子类对象。
例如,在一般类polygon(多边形)中定义了一个方法Show()来显示自身,但并不确定执行时到底画一个什么图形。特殊类square和类rectangle都继承了polygon类的显示操作,但其实现的结果却不同。把方法Show()的消息发送给一个rectangle类的对象是在屏幕上画一个矩形,而将方法Show()的消息发送给一个square类的对象则是在屏幕上画一个正方形。