1 程序设计方法与风格

良好的程序设计风格:清晰第一,效率第二。

1.1 如何形成良好的程序设计风格

  1. 源程序内部文档化;
  2. 数据说明;
  3. 语句的结构;
  4. 输入和输出。

    1.2 源程序内部文档化

  5. 选择标识符的名字;

  6. 注释(序言性注释、功能性注释);
  7. 程序的视觉性组织。

序言性注释:一般位于模块的首部,用于说明模块的相关信息,起辅助理解程序的作用,包括模块接口,程序的开发历史,程序算法,程序设计者、复审者、复审日期,程序功能说明。
功能性注释:位于源程序模块内部,主要内容包括程序段的功能、语句的功能和数据状态。


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 消息

消息:是一个实例与另一个实例之间传递的信息。对象间的通信靠消息传递,消息的组成包括:

  1. 接收消息的对象的名称;
  2. 消息标识符,也称消息名;
  3. 零个或者多个参数。

比如:我叫女朋友在9点钟吃夜宵;女朋友就是接收消息的对象的名称,消息标识符就是吃夜宵,时间9点是参数。