一、面向对象编程
种编程风格把切东西看成对象比人车面包等等把些对象拥有属性变量比年龄民族工作地点变质期寿命还有操作些属性变量函数打包成类来表示类抽象对象比人类包含些属性比年龄名字住址等还有些对别人告诉些属性功能比说看走等面向对象特点 面向对象思想是相对于C语言中的面向过程编程思想。我们用做一件事,只用去new一个对象,并且去调用这个对象的方法,就可以实现我们所要的业务,而这个对象的具体方法做了什么,具体过程,我们就不用去了这就是面向对象编程思想。
|
以上数据内容来源于:百度面向对象编程、搜狗面向对象编程、360面向对象编程 |
二、面向对象编程思想
面向对象思想是相对于C语言中的面向过程编程思想。我们用做一件事,只用去new一个对象,并且去调用这个对象的方法,就可以实现我们所要的业务,而这个对象的具体方法做了什么,具体过程,我们就不用去了这就是面向对象编程思想。 1个用户,有用户名,密码,昵称等字段,有登陆的方法,定义成1个类这个就叫封装 管理员和游客都属于用户,都有以上的字段和方法,全部管理员和游客都可以继承用户。 管理员和游客的登陆可能转向不一样的页面,管理员还可有做掉游客的方法。这个就叫多态。 三个面相对象的基本思想。
|
以上数据内容来源于:百度面向对象编程思想、搜狗面向对象编程思想、360面向对象编程思想 |
三、js面向对象编程
在兴起以前,很多人写JS可以说都是毫无章法可言的,基本上是想到什么就写什么,就是一个接一个的函数,遇到重复的还得,如果一不小心函数重名了,还真不知道从何开始查找错误,因为大家总是用面向过程的编程思想来写JS代码,而且也由于网络上充斥了太多小“巧”的JS代码段,很多都是随意而为,很不规范,这也就造成了大家对JS的“误解”,一味的认为它就是一个辅助的小东东,而不适合做大的东西开发。但是自从兴起后,大量的JS代码编写要求人们具备像写类似的代码一样,能够面向对象进行开发。 所以下面就结合我自己的体会和所学习的东东和大家一起来学习在JS中如何使用面向对象的编程。其实使用JS进行面向对象开发也不是很难的事情,因为在JS中每一个就是一个对象,比如如下一个函数: 复制代码代码如下 那么我们在使用的时候就可以把它当成一个对象来使用,比如使用如下的测试函数: 复制代码代码如下 那么在调用方法后就会弹出!的提示框,也就是调用了对象(函数)。在这里这个对象没有任何属性和方法,它只有一个构造方法,我们可以把它想象成中的一个没有任何属性和方法的类,当使用new进行对象创建的时候,就调用了它的构造方法。这也是我们最简单的对象了,当然了,一个对象肯定是要赋予它属性和方法的,在JS中我们使用原型关键字进行赋值,比如我要给对象增加一个方法和一个属性,那么就可以这样添加: 复制代码代码如下 那么就可以为添加了一个属性和方法,我们再改一下方法,如下: 复制代码代码如下 那么调用方法后就会先后打印和(一个是构造方法中的,一个是方法中的)。注意方法中的引用了关键字,该关键字表示的就是对象,即默认指向该对象,和中的关键字一样。 对于向一个对象添加实例方法和属性,我们可以采用上述的方式,即使用关键字进行赋值,格式如下: 复制代码代码如下 对象名称 属性一属性值 属性二属性值 方法一参数列表 方法体 方法二参数列表 方法体 可以按照如上方式对一个对象进行多个属性和方法的定义,这样在new一个对象后,就可以使用实例名称属性或方法来获取属性或执行方法了。 在上面的方法中,大家不知道发现没有对象的属性是可以直接访问的,比如访问对象的属性就可以使用直接获取。这就好比我们中的公有属性了,而且我们还可以直接对属性进行赋值操作。所以现在有一个问题了,我们如何给一个对象赋一个私有成员变量呢?那我们就可能要改一下类的声明方式了,不使用进行类的属性和方法声明,而是直接使用内嵌函数和属性进行声明,修改的如下,我们命名为2: 复制代码代码如下 看到2的类申明方式了没?是直接在函数内部进行了函数嵌套申明,而且我们还设置了一个局部变量,即我们的私有成员变量,该变量只能被2内部的函数进行访问,外部访问是不允许的,这样我们就可以通过使用变量的作用域来巧妙的设置类的私有变量了。我们应用如下: 复制代码代码如下 obj调用该方法将打印2 将打印 上面所说的都是如何定义一个类,以为如何为一个类定义属性和方法,由于采用方式进行定义清晰明了,所以一般都是使用该方式进行类的定义,而且现在很多框架中都使用了类似的类声明方式。而且类的私有成员变量却只能在类的构造方式中的函数进行访问,这样类的声明的方法就不能访问该私有成员变量了,而且可读性方面也没有方式好。 好了,上面所说的都是定义一个类的实例方法和属性。在中类有实例方法和属性与类方法和属性之分。所谓类属性和方法就是该类的所有实例都只维护一份类属性和类方法的副本,而不是每个实例都维护一套,这和实例属性和实例方法是不一样的。那么在JS中如何为一个类定义静态类方法和类属性呢?我们可以直接为类添加静态属性和静态方法,比如为类添加一个age的静态属性和一个的静态方法,那么声明如下: 复制代码代码如下 22 那么这样就为类声明了静态属性age和静态方法了。在使用的时候就直接使用类名进行访问了,但是不能使用实例进行访问,这点与中的是一致的,测试如下: 复制代码代码如下 正确,实例方法,可以通过实例进行访问 正确,静态方法,通过类名进行直接访问 错误,不能通过实例访问静态方法。会报JS错误! 通过以上的说明,相信大家对JS进行面向对象编程有了一定的了解,而且也一定蠢蠢欲动了吧,呵呵,大家不妨试试(提示:以上代码全部通过测试!)
|
以上数据内容来源于:百度js面向对象编程、搜狗js面向对象编程、360js面向对象编程 |
更多关于面向对象编程 |
---|
更多相关:百度面向对象编程、搜狗面向对象编程、360面向对象编程 |