当前位置: 首页 > Web前端 > HTML

优秀的程序员分享他们对面向对象概念的理解以及如何在ES3和ES6中编写类

时间:2023-04-02 23:18:30 HTML

优秀的程序员分享他们对面向对象概念的理解以及如何在ES3和ES6中编写类。本文将从以下四个方面进行讲解:1.面向对象的概念  2。类和对象的概念  3。ES6中class的写法  4.ES3中“类”的写法  下面是详细介绍:  1、面向对象的概念  面向对象,IT行业的人都知道很重要,但是很难理解。对于很多开发了几年的人来说,可能还没有完全理解面向对象。面向对象编程是一种基本上遵循人类习惯思维的编程思想。ps:我给学生讲课的时候,经常问他们“编程是为了什么”,学生说为了赚钱,为了更好的生活,我让学生提高身高,最后升为“为人民服务(类别)”(哈哈),这是事实。因为编程就是要做信息化,而信息化就是要让整个社会信息化,也就是把人类社会各行各业都信息化,也就是为人类服务。那么,既然我们要为人类服务,要解决人类社会的问题,难道不应该用人的思维吗?  分享一下我对面向对象的理解。  比如我们要开公司(资金已经到位)。将遵循以下步骤:  首先,我们需要考虑开公司需要哪些角色,比如:总经理,营销人员,技术,售后,财务,行政,再细化。对总经理的要求包括:性别、年龄、经验,总经理负责公司的正常运营和利润的保证等。对营销人员的要求:性别、年龄、经验,营销人员负责公司市场拓展及业务保障等对技术人员的要求:性别、年龄、经验、能够胜任技术相关工作,如:能够使用原生JS编写插件,技术人员负责完成客户需求等等,这些都是对公司角色的描述。在面向对象编程的思想中,它是一个类。当然,Javascript从ES6开始才提出类的概念。之前的版本没有类的概念,只有对象的概念。  其次,我们会思考如何开展工作。比如:首先要有一个总经理,然后让总经理招营销人员了解市场,开发市场,再招技术人员开发产品。在产品即将成型时,招募售后人员了解产品,为售后服务做准备。其实还有团队合作的体现。例如,当营销人员无法向客户解释具体实现时,需要技术人员配合营销人员向客户解释等。当然每个公司的具体流程不一样,但是原理是一样的。这些是程序的业务逻辑部分。  比如我们要开办一所培训学校,我们会按照以下步骤进行:教师、就业教师、财务、行政等。校长要求:需要具备什么,可以做什么;市场人员要求:有什么,能做什么;讲师要求:有什么,可以做什么;,是类,“什么”是类的属性(变量),“可以做什么”是类的方法(函数)。  其次,我们会思考如何开展工作,即工作过程。比如:让营销人员先做宣传,如果同学们想学习更多,就需要咨询师咨询,咨询完后同学们觉得学JS真的很好,就报班了,财务部收取学费,班主任建立学生学籍??,进行班级日常管理,讲师开始授课,解答学生提问。学习完成后,就业老师将学生推荐到公司,也能体现出团队精神。如果答不上来就需要找讲师配合等等。在面向对象的编程思想中,这就是大的业务逻辑,即程序逻辑。  又比如,我们要完成讲座,首先要考虑必须有桌椅、电脑、投影仪、讲师、学生等。其次,首先要买桌椅、电脑、投影仪,学生进入教室,讲师进入教室开始教学。  在面向对象编程的思想出来之前,我们更多的是使用面向过程的编程思想。  面向过程的编程思想和面向对象的编程思想有什么区别。面向过程首先关注程序逻辑,其次关注数据。面向对象首先关注数据(类和对象),其次考虑逻辑(即业务逻辑)。  单人与团队合作:面向过程的程序的执行过程更像是一个人工作;面向对象程序的执行过程更像是现实生活中的团队合作。因此,我们在描述面向过程的程序的逻辑时,是没有主语(语言解释)的,比如:先做什么,下一步做什么,接下来做什么,最后做什么。在描述面向对象逻辑时,有一个主语,如:谁先做什么,谁做什么,然后谁做什么,最后谁做什么。  面向对象思想的核心是万物皆对象。完成任何功能,面对的最小单位是对象,而不是基本数据类型(如:数字、布尔等)。  2、类与对象  类和对象:在面向对象的编程语言中,你经常会听到类和对象。类是分类、类型或数据类型;对象是类的实例,类的实例是变量或常量。例如:数字是数据类型,250是数字类型的例子;人是数据类型(类),唐僧就是人(对象)的一个例子。  对象是复杂的数据。例如,人不能用数字、布尔等基本类型来描述。人是由许多数据组成的复杂事物。一个人有身份证号、姓名、性别、年龄,所有这些组合(封装)起来就是一个人。一个人是由几种基本类型的数据组成的。但这还远远不够,因为死人也有这些属性(开玩笑,献身艺术),人可以吃饭,可以工作,这时候,这个人是活的,所以对象包括数据和功能;被调用的属性、成员变量、函数也被称为方法。在面向对象的世界里,习惯上调用属性和方法。简单理解:对象=变量+函数。  综上所述,面向对象是一种编程思想,而对象是复杂的数据类型,所以面向对象是面对复杂的数据类型,而不是单一的整数、布尔等基本类型,一个对象是由几种基本类型的数据组成,对象中甚至还有子对象,当然还有方法。  注:上面提到的类和对象都是ES6中的名词  3,ES6中类和对象的代号  1),定义一个程序员类:  classProgrammer{  //构造函数  constructor(name,sex,age){  //属性  this.name=name;  this.sex=sex;  this.age=age;  }  //方法  writeCode(str){  alert(this.name+"正在认真写"+str);  }  }  2)、实例化一个程序员对象:  Letp1=newProgrammer("Baby","Male",25);//这句话会调用constructor()函数  p1.writeCode("Snake");  上面的代码是比较接近传统的面向对象编程语言。对于程序员来说,是个好消息。Javascript的代码格式越来越接近传统的面向对象编程语言。  4。ES3中“类”的写法  1)区分ES3和ES6名词:  ES3没有类名。  ES3中的对象是ES6中的类。  ES3中的实例是ES6中的对象。  2),ES3中的代码  以构造函数的形式定义了一个程序员对象(在ES6中称为类):  functionProgrammer(name,sex,age){  //property  this.name=name;  this.sex=sex;  this.age=age;  }  //method  Programmer.prototype.writeCode(str){  alert(this.name+"在认真写"+str);  }  l实例化一个programmer实例(在ES6中称为object):  Letp1=newProgrammer("baby","Male",25);//这句话会调用constructor()函数  p1.writeCode("贪吃蛇");  对比一下ES6和ES3的写法,你会发现实例化对象的代码是完全一样的,只是类的定义写法不同而已。其实ES6中class的写法只是一个语法糖,相当于给ES3的写法加了一个外包装。ES6中class的写法背后,依然是ES3的写法。只是程序员在编写ES6代码时,更接近于传统的面向对象编程语言(如:java、C++等)。这样,程序员学习新语言就容易多了;另外,ES6类的写法阅读起来也更方便。  注:本文的重点是理解面向对象编程的思想。