
如果使用 面向过程语言 ( 如 : C 语言 ) , 开发 大型 项目 , 一般使用 结构化程序设计方法 ;
结构化程序设计方法 的 设计思路如下 :
如下图所示 , 结构化程序设计方法 , 就是 将一个大问题 , 分解成很多小问题 , 每个小问题都使用独立的 子模块 解决 , 多个 子模块 共同构成一个 大的软件系统 ;

使用上述思路 设计出的 程序结构 有如下特点 :
结构化程序设计 的 优点 就是可以 将 复杂庞大的系统 , 拆分成若干子任务 , 方便开发 , 控制 , 维护 ;
结构化程序设计 也有 很多缺点 :
鉴于 面向过程编程 有上述缺点 , 这里引入 面向对象编程 思想 ;
针对 " 数据和处理过程分离 " 问题 , 面向对象 可以 将 事物的 数据 以及 对数据的处理过程 , 都定义在一个类中 , 将它们封装在一起 ;
针对 " 可重用性差 " 问题 , 面向对象 中 , 对 相同类型的 事物 , 抽象出其共有特点 , 形成一个类 , 该类可以重复使用 , 并可以创建多个该类型事物 ;
针对 " 不适合开发图形界面 " 问题 , 面向过程 中 抽象实现 界面元素很麻烦 , 但是如果使用面向对象 , 可以直接将界面抽象成一个类 , 界面中的按钮等元素也可以抽象成一个类 , 将这些类对象组合在一起 , 就是一个图形界面程序 ;
针对 " 数据安全性差 " 问题 , 面向对象中 , 封装数据和方法时 , 会为每个成员指定可访问的范围 , 如 public , protected , private 等访问范围 , 外部无法访问 private 成员 ;
引入面向对象后 , 极大地提高了 程序的 可维护性 ;