面向对象

面向对象编程的介绍

两大编程思想

  1.面向过程:分析好步骤,按步骤解决需求

  2.面向对象:把需求分割成对象,然后由对象之间分工合作   OOP(Object Orientted Programming)

  3.两种编程方式的优缺点对比:

  面向过程:性能更高,联系更加紧密,但是不利于维护,复用和扩展

  面向对象:易于维护,易复用,易扩展,是系统更加灵活,但是性能比面向过程低

面向对象的优点

  面向对象编程具有灵活,代码可复用,容易维护和开发的优点,更适合多人合作的大型软件项目

面向对象的特点

  封装:

     简单的说函数的封装,将一个功能封装起来,便于代码的复用

     也可以将多个函数和属性,整体封装起来形成一个具体的对象

  继承:

    让一个不具有某些特征的对象,具有另一个对象的特征

    继承中,如果实例化子类输出一个方法,先看子类有没有这个方法,如果有就先执行子类

    继承中,如果子类没有,就去查找父类有没有这个方法,如果有,就执行(就近原则)

  多态

    多种形态,一个功能的不同的应用场景
    应用场景,创建场景

ES6中的类和对象

  1.创建类

class name {
// class body
}                         

  2.创建实例

var xx = new name();      //类必须使用new实例化对象

  3.类construtor构造函数

class Strat {
    constructor(name,age){
    this.name = name;
    this.age = age;
    }
}

var ldh = new start("刘德华",18);
console.log(ldh);   //Strat{"刘德华",18}

  注意事项:

  ① 通过class关键字创建类,类名习惯定义首字母大写

  ② 类里面的constructor函数,可以接受传递过来的参数,同时返回给实例对象(不需要返回值)

  ③ constructor函数 只要new生成实例时,就会自动调用这个函数 即,如果我们不写这个函数,类也会自动生成这个函数(不需要主动调用

  ④ 生成实例的new不能够省略

  5.类中的方法

class Strat {
    constructor(name,age){
    this.name = name;
    this.age = age;
    }
    say() {
        console.log(this.name + "你好");
    }
}

  注意事项:

  ①方法不需要书写function关键字

  ②方法与方法之间不需要逗号分隔

  6.super关键字

  概念:super关键字用于访问和调用对象父类上的函数.可以调用父类的构造函数,也可以调用父类的普通函数

class Father {
        say() {
            return "我是爸爸";
        }
    }

    class Son extends Father{
        say(){
            console.log(super.say() + "的儿子");  //使用super调用父级函数   
        }
    }

    var son = new Son ();
    son.say();  //我是爸爸的儿子

  

原文地址:https://www.cnblogs.com/yad123/p/11455955.html