什么是对象?

Objects = Attributes + Services

Data : The properties or status

Operations: the fuctions

C语言中定义的变量用来存储数据,所以它可以理解为是“对象”

“任意变量都是对象”

对象拥有自己的属性和服务;

比如一盏灯,它的亮度,冷暖等就是它的属性;而它能带来的服务就是照明,拥有接口 并且能够输入(电)输出(光);

比如一个杯子,它的杯身颜色,里面水的多少就是它的属性;而它的服务就是让你喝水,同样拥有接口(杯口),输能入(水)和输出(水)。

面向过程是针对一个问题或者一个场景,需要有些什么步骤完成;

面向对象是针对一个问题或者一个场景中存在什么对象(物体),这些对象有什么属性能接受什么能提供什么服务/做什么操作。

object-oriented 面向对象 专注对象 而不是操作过程;


类和对象:

类:对象的类别;

类定义了对象,对象是类的实例;

OOP Characteristics:

  1. 所有东西都是对象
  2. 一个程序就是一堆对象在通过发信息的方式相互告知要做什么操作(C语言源代码则是函数的集合)
  3. 每一个对象都有它自己的由其他对象组成的内存
  4. 每一个对象都有一个类型
  5. 所有特殊类型的对象都可以接受相同的信息(所有可以接受相同消息的对象都是同一特殊类型)

Interface:

一个对象拥有一个接口(拥有相同接口的对象是同一类型)

接口的功能:

  • Communication (便于更换,交流、松散耦合--loose coupling)
  • Protection (外面的接口保护里面的结构--hidden implementation)

oop 的三大原则:封装encapsulation,继承inheritance,多态polymorphic

最新文章

  1. JavaScript学习总结(一)——延迟对象、跨域、模板引擎、弹出层、AJAX示例
  2. div盒子垂直水平居中
  3. Linux 等待进程结束 wait() 和 waitpid()
  4. HTML之表格制作
  5. python编写接口
  6. kthread_stop引起的OOP
  7. python进度条代码
  8. Java 和Oracle的数据类型
  9. 项目中遇到angular时间插件datetinepicker汉化问题
  10. patindex
  11. python中assert详解
  12. Android精通教程V
  13. hdu 1181 以b开头m结尾的咒语 (DFS)
  14. python opencv 检测特定颜色
  15. 2018.12.18 bzoj2242: [SDOI2011]计算器(数论)
  16. CentOS服务器安装FFmpeg指南
  17. WordCount_命令行运行时指定参数
  18. Git 将代码恢复到一个历史的版本
  19. Apache commons——Apache旗下的通用工具包项目
  20. 移动ChemDraw结构有什么方法

热门文章

  1. 【New】Code Insertion
  2. 超小体积单键/1路1感应通道触摸触控检测IC-VKD233HS DFN6 2*2mm,常用于TWS蓝牙耳机入耳检测、运动手环等小体积单键触摸产品
  3. 分享一些小tips
  4. PostgreSQL 备份
  5. MySQL 常见索引类型介绍
  6. 完成 DolphinScheduler 新手任务赢好礼活动 | 倒计时3 天
  7. Luogu3435 [POI2006]OKR-Periods of Words (KMP)
  8. React性能优化,六个小技巧教你减少组件无效渲染
  9. 管理 MongoDB 用户和权限
  10. 分库分表之ShardingSphere