提纲:

1.为什么要使用面向对象
    2.基本概念:类和对象
    3.面向对象是什么
    4.详细文字解释

具体解释:

一、为什么要使用面向对象

1、现有的数据类型没法描述复杂的社会(复杂的数据),
如:医生,患者,老师,学生等等。
因为,现实生活中每个数据都是复杂(包括了很多数据)
如:医生包括(工号,年龄,性别,科室等等)

2、怎么办?用自定义类型来完成现实生活中的类型的定义。这就是类。

二、基本概念:类和对象

1、类: 就是分类,类型,数据类型,包括了很多信息的数据类型。如:人,猪,狗等等。

等价于我们的Number,Boolean,String等等, 官方提供了哪些类?Array,Date,RegExp等等。

2、对象:就是变量,是类的实例,即类的一个示例,类的一个举例说明。如:诸葛亮是人的一个示例,大黄是狗的一个举例说明。

我们在实际开发中,会定义若干个自定义类型(类),然后,再根据类来定义变量

三、面向对象是什么

面向对象是一种编程思想。

面向对象的编程思想,就是人类的思维(思想)。
   1)、定义类(先规划)
   2)、定义变量,实现业务逻辑(定义变量,并且按照业务步骤进行工作的过程)。

以下为详细文字解释:

面向对象编程,地球人都知道很重要,很难理解,对于很多做过好几年开发的人不见得对面向对象完全理解。面向对象编程是一种编程思想,是基本沿用人类习惯性思维的一种编程思想。ps:我给学生讲课是,经常问学生“编程为了什么”,学生说挣钱,为了更好的生活,我让学生提高一下高度……,最后就提升到了“为人民(类)服务”了(哈哈),此话不假。因为,编程就是要做信息化的事情,而信息化就是信息化整个社会,即把人类社会的各行各业都进行信息化,也就是为人类服务了。那么,既然要为人类服务,解决人类社会的问题,那么,是不是该用人类的思维才对呀。

我来分享一下我对面向对象的理解。

人类的习惯性思维:我在讲课时,经常给学生用生活化例子来说明面向对象。

  • 比如,我们要创办一个公司(资金已经到位)。会按照以下步骤:

首先,我们需要考虑的是,创办公司需要哪些角色,如:总经理,市场人员,技术,售后,财务,行政……,进一步细化,总经理的要求有:性别,年龄,经验,总经理要负责公司的正常经营和利润的保证等等。市场人员的要求:性别,年龄,经验,市场人员要负责公司市场的拓展和业务的保证等等。技术人员的要求:性别,年龄,经验,能够胜任技术方面的相关工作,,如:要会用原生的JS写插件,技术人员负责完成客户的需求等等……,这些都是对公司角色的描述,在面向对象编程思想中,就是类,当然Javascript是从ES6开始才提出了类的概念,以前的版本没有类的概念,只有对象之说。

其次,我们会想到,工作该如何开展。如:让总经理先招聘市场人员了解市场,开拓市场,再招聘技术人员开发产品,产品快要成型时,招聘售后人员了解产品,准备售后的服务工作,财务人员也得跟上……,这里面,也有团队配合的体现,比如,市场人员没法给客户讲清楚具体的实现时,就需要技术人员配合市场人员给客户讲解等等。当然,每个公司的具体流程不太一样,但是,都是同样的道理。这些就是程序中的业务逻辑部分。

  • 比如,我们要创办一个学校,会按照以下步骤:

首先,我们需要考虑的是,创办学校需要哪些角色,如:校长,市场人员,咨询人员,讲师,班主任,就业老师,财务,行政等等。校长的要求:需要具备什么,能干什么;市场人员的要求:有什么,能干什么;讲师的要求:有什么,能干什么;等等……,这些都是对公司角色的描述,在面向对象编程思想中,就是类,而“有什么”就是类的属性(变量),“能干什么”就是类的方法(函数)。

其次,我们会想到,工作该如何开展,即工作流程。如:让市场人员先做宣传,学生如果想进一步了解,就需要咨询师进行咨询,咨询完成后,学生觉得学习JS确实不错,就会报名进班,财务处收学费,班主任建立学生的学籍,进行班级日常管理,讲师开始授课,解答学生的问题,学习完成后,就业老师把学生推荐给企业……,这里也能体现团队配合,如:学生咨询过程中,问到了比较深的技术问题,咨询师解答不了,就需要找讲师配合等等。在面向对象编程思想中这就是大的业务逻辑,即程序逻辑。

让总经理先招聘市场人员了解市场,开拓市场,再招聘技术人员开发产品,产品快要成型时,招聘售后人员了解产品,准备售后的服务工作,财务人员也得跟上……,这里面,也有团队配合的体现,比如,市场人员没法给客户讲清楚具体的实现时,就需要技术人员配合市场人员给客户讲解等等。当然,每个公司的具体流程不太一样,但是,都是同样的道理。这些就是程序中的业务逻辑部分。

  • 再比如,我们要完成讲课这件事情,首先需要考虑,需要有桌椅板凳,电脑,投影仪,讲师等等,其次考虑,先买桌椅板凳,电脑,投影仪,学生进教室,讲师进教室开始讲课……。

在面向对象编程思想出来之前,我们更多用的是面向过程的编程思想。

面向过程的编程思想和面向对象的编程思想有何区别。面向过程首先着重考虑的是程序逻辑,其次考虑的是数据。而面向对象首先着重考虑的是数据(类和对象),其次考虑的是逻辑(即业务逻辑)。

单干与团队协作:面向过程程序的执行过程,更像是单干;面向对象程序的执行过程,更像是现实生活中的团队协作。所以,我们在描述面向过程程序的逻辑时,没有主语(语文的解释),如:先干啥,再干啥,然后干啥,最后干啥……。而描述面向对象的逻辑时,有主语,如:谁先干啥,谁再干啥,然后谁干啥,最后谁干啥……。

面向对象思想的核心就是一切皆对象,完成任何功能,面对的最小单位都是对象,而不是基本数据类型(如:数字,布尔等等)。

类和对象:在面向对象语言中,经常会听到类和对象。类就是分类,就是类型,就是数据类型;对象就是类的举例,类的实例,就是变量或者常量。如:数字是数据类型,而250就是数字类型的一个例子;人是数据类型(类),唐僧就是人的一个例子(对象)。

对象就是复杂的数据,如:人没法用数字,布尔等基本类型描述,人是一个复杂的事物,由很多数据构成。一个人有身份证号码,姓名,性别,年龄,把这一切组合(封装)起来才是个人,人由若干个基本类型的数据组成。但这远远还不够,因为死人也具备这些属性(开个玩笑,为艺术献身一下),人能吃饭,能工作,此时,这个人才活灵活现了,所以,对象里面包括数据和函数;数据又叫属性,成员变量,函数又叫方法。在面向对象的世界里,习惯上会叫属性和方法,简单理解:对象=变量+函数。

综上所述,面向对象是一种编程思想,而对象是复杂的数据类型,所以,面向对象就是,面对的都是复杂的数据类型,而不是单一的整型,布尔等基本类型,对象是由若干个基本类型的数据构成,甚至对象里还有子对象,当然还有方法。

javascript_面向对象系列_01概念相关推荐

  1. 面向对象系列教材 (一)- Java中的类和对象

    面向对象系列教材 (一)- Java中的类和对象 本章节会引入面向对象的基本概念 (但是不会深入展开,仅仅是引入. 深入的学习会在后续的类和对象以及接口与继承 中展开) 相信你肯定玩过DOTA或者LO ...

  2. 【译文】 C#面向对象的基本概念 (Basic C# OOP Concept) 第一部分(类,对象,变量,方法,访问修饰符)...

    译文出处:http://www.codeproject.com/Articles/838365/Basic-Csharp-OOP-Concept 相关文档:http://files.cnblogs.c ...

  3. 面向对象程序设计基本概念

    面向对象程序设计基本概念 重点: C++中的 多态 和 指针间接赋值 1): 多态的三个条件         a: 子类继承父类         b: 虚函数(虚表及虚表指针)         c: ...

  4. 面向对象(OOP)基本概念

    面向对象(OOP)基本概念 {#toc_0} 面向对象编程 ------ Object Oriented Programming 简写 OOP 目标 {#toc_1} 了解 面向对象 基本概念 面向对 ...

  5. python中什么叫类、什么叫对象_python中的类面向对象的基本概念!

    一.概述 今天我们讲述Python中的类&面向对象的基本概念. 首先我们为什么要学习面向对象,我讲一个故事,应该就可以明白了.在古时候,官府衙门如果要颁布什么告示就会去找工匠将命令中的字都雕刻 ...

  6. javascript面向对象系列第三篇——实现继承的3种形式

    前面的话 学习如何创建对象是理解面向对象编程的第一步,第二步是理解继承.开宗明义,继承是指在原有对象的基础上,略作修改,得到一个新的对象.javascript主要包括类式继承.原型继承和拷贝继承这三种 ...

  7. 大白话5分钟带你走进人工智能-第二十二节决策树系列之概念介绍(1)

                                                                第二十二节决策树系列之概念介绍(1) 本系列我们讲一个新算法及其衍生出来的系列算 ...

  8. 面向对象(OOP)基本概念及基本语法

    面向对象(OOP)基本概念 面向对象编程 -- Object Oriented Programming 简写 OOP 目标 了解 面向对象 基本概念 面向对象基本概念 我们之前学习的编程方式就是 面向 ...

  9. 计算机对象的概念对象的特性,面向对象的基本概念

    面向对象的基本概念 来源:信管网 2018年07月20日 [所有评论] 面向对象的基本概念包括对象.类.抽象.封装.继承.多态.接口.消息.组件.复用和模式等. (1)对象:由数据及其操作所构成的封装 ...

最新文章

  1. lingo 一些函数
  2. 首次使用Cesium加载3D数据不成功
  3. CMS(Concurrent Mark-Sweep)垃圾回收器
  4. web开发课程,CSS标准文档流与脱离文档流,已整理成文档
  5. zval php,PHP内核之zval
  6. 微软SQL 报表服务的研究
  7. 包装类 与 简单集合框架
  8. [转]jQuery为控件添加水印文字
  9. 如何获取到informix for linux?
  10. 计算机软件评估资料,软件项目工作量评估方法 计算机软件及应用 IT计算机 专业资料.doc...
  11. 【数学逻辑思维】A 好玩的数独游戏——002
  12. 概要设计说明书【校园BBS论坛】2022-5.5
  13. 宜家开发中心东亚区完成在中国的全新升级;牙科巨头卡瓦集团上海创新卓越中心正式启动 | 美通企业日报...
  14. 记一次 打包报错:Keystore was tampered with, or password was incorrect
  15. 新鲜出炉!ECCV2022 107个开源数据集合辑,全球 AI 研究热点一网打尽
  16. Rsync 备份服务:基本概述、应用场景、传输模式、注意事项、密码解决方案、服务实践、备份案例、结合inotify
  17. ![CDATA[]] 的基本介绍
  18. Swiper插件读后感
  19. 遗传算法——君主方案代码实现
  20. 2021年广东省安全员B证(项目负责人)证考试及广东省安全员B证(项目负责人)作业考试题库

热门文章

  1. 计算机平面设计试题,计算机平面设计竞赛题
  2. 十分钟入门Zigbee
  3. 逻辑漏洞渗透与攻防(二)之登录验证码安全
  4. matlab调用surfer绘制等值线
  5. Halcon提取三角形边缘以及获取角点
  6. 梅奥的人际关系理论(1933)--轉
  7. 詹金斯搭建_詹金斯用户大会巴黎
  8. Glider Gym - 101911B
  9. 深度ip转换器手机版app_开言英语先锋版app下载_开言英语2021手机版下载
  10. dijkstra(迪杰克斯拉算法)