关于面向对象

Posted jiapei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于面向对象相关的知识,希望对你有一定的参考价值。

面向对象oop:是一种编程思想,在程序中用对象来描述现实中一个具体的事物

对象:封装了一个事物的属性和功能的程序结构

面向对象的三大特征:  封装 ; 继承 ; 多肽

封装讲一个事物的属性和功能集中定义在一个对象

  事物的属性 , 会成为对象的属性

  事物的功能 , 会成为对象的方法

创建自定义对象的三种方法

  1、使用对象的直接量

    var   对象名  = 

      属性名 : 属性值,

      …… : ……,

      方法名 : function()

      ,

      …… : ……,

    

  其中有一个关键字this,用来引用正在调用函数对象的关键词

  例如对象自己的方法,要访问自己的属性,就必须用this.属性名!!!!

 

  2、使用new方法创建(创建的时候暂时不知道对象的内容)

    var   对象名  =  new  Object()    创建一个空对象

    向空对象中添加属性和方法,添加的方式与第一种创建方式一至

    new方法四个步骤

      1.创建新的空对象

      2.用new创建对象时,会自动设置子对象的_proto_来继承构造函数的prototype属性

      3.用新对象去调用构造函数

      4.将新对象的地址保存在变量

 

  3、构造函数    也称constructor构造器

    专门用来描述一类对象统一结构的函数   即共有的属性和方法

    当反复创建多个相同结构的对象时,定义统一的构造函数,再反复构造函数的使用

    构造函数的定义

      3.1 类型名首字母大写

      function   类型名 (属性参数列表)

        this.属性名 = 属性参数值;

        ……;

        this.方法名  =  function ()

        ……this.属性名……

        

      

      3.2 用new调用构造函数,传入具体对象的属性值(创建并装饰新对象)

      var  obj  = new  类型名(属性值列表)

      创建一个指定类型的对象;用new调用指定类型

 

继承   

    父对象的成员,子对象不可重复创建,可直接使用  

    这样不仅可以节省内存,还可以减少代码量让代码重复使用

    用处:只要一类子对象,都需要相同的属性和功能时,就将相同的属相和功能仅在父对象里定义一次

    js中的继承都是继承的原型对象

    原型对象: 专门集中存储一类子对象相同属性和功能的父对象,同一类子对象所共有的属相和方法

    而每一次创建一个构造函数,都会自动赠送一个原型对象

    修改原型对象时,不会去修改原型对象的属性值,而是在子对象中添加一个新的属性

    自有属性  :    直接保存在对象本地的属性

    共有属性  :    保存在原型对象中,被所有子对象共享的

           使用的方法都是 :    创建的类型名 :  属性/方法

    function  CheckProperty(Obj.pname)

      if()

      else

      

    

 

    原型对象的验证:

      1.console.log(Object.prototype.toString.call(obl));

      2.Array.is(Obj)

        console.log(

          Array.isArray(obj)

         )

 

    删除属性    

        可使用关键字delete删除对象的属性,但此操作存在危险性,使用时须三思

    原型链

        原型本身也是个对象,因此原型对象也有原型,对象就有_proto_,有多继父元素逐渐继承

    原型链保存着 : 所有对象的方法和属性

    作用域链保存着 :  所有的变量

    作用域链的作用 : 控制变量的使用顺序,优先使用活动对象AO的局部变量,局部中没有找到才去延作用域链向父级查找

    原型链的作用 : 控制对象访问成员的使用顺序,优先使用自己的,自己没有才向父级查找

 

    原型链的顶端 :  Object ,prototype;

    作用域的顶端  :  window

    

  简述:

      所有不需要对象,访问的变量都保存在作用域链中

      所有需要对象,访问的变量都保存在 原型链中

 

多肽

    定义: 同一个事物,在不同的情况下表现出不同的状态

    重写 override :

        如果子对象觉得父对象的成员不好用,便自己定义一个重名的成员来使用

    两个对象之间的继承关系

        child __proto __ = father,

    继承   

        Object.setPrototypeOf(child,father)

    批量设置继承关系

        构造函数 . Prototype  =  father,

以上是关于关于面向对象的主要内容,如果未能解决你的问题,请参考以下文章

关于JavaScript面向对象那些事

关于面向对象

关于java面向对象实例的解释 如下例

关于面向对象的理解

关于面向对象和基于对象

[Java初探07]__关于面向对象的简单认识