javaScript学习笔记 18day(上) ———————面向对象OOP

注意: 面向对象不是一种语法,而是一种思想,是一种编程模式

        面向对象编程(OOP)是计算机科学中一个年代久远的编程范式。现在所知的一些OOP概念最开始出现于上个世纪50年代,可是直到1967年Simula及后来Smalltalk语言的出现,可辨识的OOP才应运而生。

概念

       OOP的基础理念非常简单直观:对象 是一个逻辑相关的数据和功能的集合。它以人类对世界的自认理解为设计理念。好比一辆车,它有数据(品牌、型号、门数、VIN等等)和功能(加速、减速、刹车、移动、开门等等)。此外OOP使得编程人员能够以抽象(一辆车)和具体(某辆具体的车)的思维去思考事物。

面向对象(oop):把所有的需求看成一个对象,对对象进行描述分析 然后围绕这个对象编程过程

面向过程:按照需要一个步骤一个步骤的去完成,注重过程。

利用面向对象编程:

  1. 创建对象:字面量  let obj = {}    内置构造函数 let obj  = new Object()  工程函数创建对相关

  2. 描述对象:(1)静态属性:这个对象有什么? (2)动态方法:这个对象能做什么?

  3. 使用对象:当需要这个对象的功能时 那么就调用该对象即可。

构造函数


        //创建对象
        let obj = {}
        //这个对象他有什么特征
        obj.name = "王五";
        obj.age = 24;
        obj.sex = "女";
        obj.height=172;
        //这个对象会什么

        obj.dancing = function(){
            console.log(this.name + "去唱歌咯!");//王五去唱歌咯!
        }
        //使用对象
        obj.dancing() 
       

        obj.running = function(){
            console.log(this.name + "去跑步咯!");//王五去跑步咯!
        }

        //使用对象
        obj.running()

箭头函数

 //创建对象
        let obj = {}
        //这个对象他有什么特征
        obj.name = "王五";
        obj.age = 24;
        obj.sex = "女";
        obj.height=172;
        //这个对象会什么
        obj.dancing = ()=>{
            console.log(this.name + "去唱歌咯!");//去跑步咯!去唱歌咯!
        }
        //使用对象
        obj.dancing()
       

        obj.running = ()=>{
            console.log(this.name + "去跑步咯!");//去跑步咯!去跑步咯!
        }

        //使用对象
        obj.running()

OOP的基本词汇

指的是通用的东西(车)。
实例(或者对象实例) 指的是具体的东西(一辆具体的车)。
方法 指的是一个功能(加速、减速、刹车)。
跟类相关,但是不涉及特定实例的功能叫做类方法(比如:create new VIN,可能就是一个类方法:它不特指某辆具体的车,的确,我们并不希望某辆具体的车能够创建新的、合法的VIN)。

简单了解面向对象三大特征

  • 封装
  • 继承
  • 多态

封装: 也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。

继承: 它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。
注意:继承会继承父类的实例属性和实例方法,并不会继承静态属性和静态方法,并且静态方法只能通过类名去调用。

多态: 多态性(polymorphisn)是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。简单的说,就是一句话:允许将子类类型的指针赋值给父类类型的指针。

三大特征优点


封装: 封装的优势在于定义只可以在类内部进行对属性的操作,外部无法对这些属性指手画脚,要想修改,也只能通过你定义的封装方法;

继承: 继承减少了代码的冗余,省略了很多重复代码,开发者可以从父类底层定义所有子类必须有的属性和方法,以达到耦合的目的;

多态: 多态实现了方法的个性化,不同的子类根据具体状况可以实现不同的方法,光有父类定义的方法不够灵活,遇见特殊状况就捉襟见肘了
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值