1 程序设计方法与风格
1.1 如何形成良好的程序设计风格
序言性注释:一般位于模块的首部,用于说明模块的相关信息,起辅助理解程序的作用,包括模块接口,程序的开发历史,程序算法,程序设计者、复审者、复审日期,程序功能说明。
功能性注释:位于源程序模块内部,主要内容包括程序段的功能、语句的功能和数据状态。
2 结构化程序设计
2.1 结构化设计的四个原则
- 自顶向下:先考虑全体,后考虑细节;先考虑全体目标,后考虑局部目标。
- 逐步求精:对复杂问题,先设计一个目标作为过渡,然后逐步细化。
- 模块化:把程序要解决的总目标分解为 一个一个的模块。
限用goto:限制使用goto语句,程序的质量与goto语句数量成反比。
2.2 结构化程序的基本结构
结构化程序设计常用顺序、选择(分支)和循环(重复)三种基本结构。
顺序结构:自上而下,自左而右;
- 选择结构:也称分支结构,某一节点进行选择,再考虑是否前进。
- 循环结构(重复结构):由某一条件返回前面某步,直到达到另一条件才能跳出循环,也存在死循环。
2.3 程序设计语言的基本成分
数据成分、运算成分、控制成分、传输成分
如果你要炒鸡蛋饭,那么数据成分就是米饭和鸡蛋,运算成分是煤气炉,控制成分是控火按钮,传输成分是炒饭的铲子。
3 面向对象程序设计
3.1 面向对象基础概念
面向过程(步骤化)是分析出实现需求所需要的步骤,通过方法一步步实现步骤,接着依次调用。
面向对象(行为化)是将整个需求按照特点、功能划分,将这些存在共性的封装成类,类实例化后成为对象,创建对象不是为了完成某一个步骤,而是描述某个事物在解决问题的步骤中的行为。
以上解释来源于:https://www.cnblogs.com/ideal-20/p/11050146.html
面向对象:主张从客观世界固有的物质出发来构造系统,它提倡用人类在现实生活中常用的思维方式来认识、理解、描述客观的事物。
对象:在现实世界中,每个实体都是对象;例如:大学生、汽车、电冰箱、电脑、键盘、狗等。
属性:用于描述对象的状态;比如大学生的年龄,身高等。
方法:用于描述对象的行为;比如大学生要学习、要交女朋友、要吃饭。
类:一组具有相同特性(数据元素)和行为(功能)的对象的集合,它的内部封装了属性和方法,基于同一类的两个对象可以分别设置自己的属性,比如人类,都是人,这是共同特性(属性),人类中也有各种不同的职业,比如大学生和教授,这是各自设置不同的属性。
3.2 面向对象基本特点
- 标识唯一性:对象可由内在本质来区分,而不是通过描述来区分;
- 分类性:可以将具有相同属性和操作的对象抽象成类;
- 多态性:同一操作可以是不同对象的行为;
- 封装性:从外面看不到对象的内部,只能看到对象的外部特征,可实现隐蔽功能;
- 模块独立性优异:对象是面向对象的软件的基本模块,内聚性强。
源恩教育中的老师曾以男女朋友进行举例来辅助记忆,在这里我用我自己的理解来说明一下,比如你是一个女孩子,你可以在人群中一眼识别出你的男朋友,他就是标识唯一的,而你的男朋友属于一类至亲,这就是分类性,当你生气时,不同男朋友对你的态度因人而异,多态性不就体现了吗?当你的男朋友和你上街时,那一定是打扮得很不错的,不可能邋遢的陪你逛街把,这体现了封装性,当你希望男朋友不要太过于依赖你和他的父母,保持着独立,面对事业自立自强,这就是模块独立性。
除以上特点之外,还有
- 继承性:使用已有的类建立新类的定义技术,能直接获得已有的性质,而不必重复定义他们,它是类之间共享属性和操作的机制。
比如古人:读书,吃饭;现代人:读书,吃饭,除此之外,还多了开车、学历、购物等等新的性质;
3.3 消息
消息:是一个实例与另一个实例之间传递的信息。对象间的通信靠消息传递,消息的组成包括:
- 接收消息的对象的名称;
- 消息标识符,也称消息名;
- 零个或者多个参数。
比如:我叫女朋友在9点钟吃夜宵;女朋友就是接收消息的对象的名称,消息标识符就是吃夜宵,时间9点是参数。
