面向对象(OOP)基本概念

面向对象编程 —— Object Oriented Programming 简写 OOP

目标

  • 了解 面向对象 基本概念

01. 面向对象基本概念

  • 我们之前学习的编程方式就是 面向过程 的
  • 面相过程 和 面相对象,是两种不同的 编程方式
  • 对比 面向过程 的特点,可以更好地了解什么是 面向对象

1.1 过程和函数(科普)

  • 过程 是早期的一个编程概念
  • 过程 类似于函数,只能执行,但是没有返回值
  • 函数 不仅能执行,还可以返回结果

1.2 面相过程 和 面相对象 基本概念

1) 面相过程 —— 怎么做

  1. 把完成某一个需求的 所有步骤 从头到尾 逐步实现
  2. 根据开发需求,将某些 功能独立 的代码 封装 成一个又一个 函数
  3. 最后完成的代码,就是顺序地调用 不同的函数

特点

  1. 注重 步骤与过程,不注重职责分工
  2. 如果需求复杂,代码会变得很复杂
  3. 开发复杂项目,没有固定的套路,开发难度很大!

2) 面向对象 —— 谁来做

相比较函数,面向对象 是 更大 的 封装,根据 职责 在 一个对象中 封装 多个方法

  1. 在完成某一个需求前,首先确定 职责 —— 要做的事情(方法)
  2. 根据 职责 确定不同的 对象,在 对象 内部封装不同的 方法(多个)
  3. 最后完成的代码,就是顺序地让 不同的对象 调用 不同的方法

特点

  1. 注重 对象和职责,不同的对象承担不同的职责
  2. 更加适合应对复杂的需求变化,是专门应对复杂项目开发,提供的固定套路
  3. 需要在面向过程基础上,再学习一些面向对象的语法

最新文章

  1. java的JSP技术
  2. Bootstrap<基础二> 网格系统
  3. ASP.NET MVC学习之Ajax(完结)
  4. 【项目启动】 tomcat启动,项目无法启动,无法正常访问/项目可以启动,报错:java.lang.ClassNotFoundException: ContextLoaderListener
  5. Linq to Sql/entity Join
  6. 报错Database returned an invalid value in QuerySet.datetimes(). Are time zone definitions for your database and pytz installed?解决
  7. 【WebForm】ASP.NET 使用 uploadify 上传文件
  8. Qt 固定窗口【worldsing 笔记】
  9. how to learn algorithms(ZAC)
  10. UIButton 解析
  11. SQL语句:Group By总结
  12. The Beam Model:Stream & Tables翻译(上)
  13. 谷歌将一些弱小的库从安卓代码移除Google Removes Vulnerable Library from Android
  14. linux 之网络命令
  15. mysql 批处理命令执行多个sql脚本
  16. swift 实践- 12 -- UIPickerView
  17. Vue proxyTable 解决开发环境的跨域问题
  18. JAVA拼合数组方法
  19. 通过公钥远程登录sshd认证
  20. Python高阶函数(Map、Reduce、Filter)

热门文章

  1. 6.MongoDB4.0在Windows环境的下载、安装、配置
  2. 在网页中运用统计Web Service接口
  3. 运行maven install命令时出现错误(BUILD FAILURE)
  4. GoldenGate抽取Informix数据库安装及配置
  5. 【shell】wc命令
  6. UI自动化(六)js
  7. 浅析vue实例的生命周期(生命周期钩子)
  8. Android中intent的分类及使用
  9. ios外包公司——技术分享:手机应用开发步骤
  10. robot framework学习二-----元素定位