• ES6的面向对象编程以及ES6中的类和对象


    一、面向对象

    1、面向对象

    (1)是一种开发思想,并不是具体的一种技术

    (2)一切事物均为对象,在项目中主要是对象的分工协作

    2、对象的特征

    (1)对象是属性和行为的结合体

    (2)属性:体现对象的静态特征、

    (3)行为:体现对象的动态特征(具体体现为函数/方法)

    3、面向对象的三大特征

    (1)封装性:对象时属性和行为的封装体

    (2)继承性:在基类(父类)中已经定义的属性或行为,子类可以继承使用

    (3)多态性:同一个信息传递给不同的对象呈现的效果也是不同的

    二、ES6中的类和对象

    1、类:在ES6中引入类的概念,使用class关键字进行定义

    class 类名{

            属性

            方法

    }

    2、ES6中类和对象的关系

    (1)类是对象的抽象:类抽取了对象的公共部分

    (2)对象是类的实例化:对象是类的具体实例

    3、ES6中类的构造函数

    使用constructor作为类的构造函数,用于初始化对象。在定义类的时候若没有显式的定义constructor,js会自动生成一个无参的构造函数(constructor(){}) 

    1. class Student{
    2. constructor(id,name,age,sex){ //constructor用来初始化对象的属性
    3. this.id = id,
    4. this.name = name,
    5. this.age = age,
    6. this.sex = sex
    7. }
    8. show(){
    9. console.log(`学号:${this.id} 姓名:${this.name} 年龄:${this.age} 性别:${this.sex}`);
    10. }
    11. }
    12. let stu1 = new Student('001','小王',20,'男');
    13. console.log(stu1);
    14. stu1.show();

     

     注:通过类创建对象,new 类名([参数])

    (1)创建对象时不能显式调用constructor,在new 类名()创建对象时,默认调用了constructor

    (2)在定义类时若没有写constructor,则js会自动生成无参的constructor

    三、ES6中类的继承

    1、基类:被继承的类,也可称为父类或超类

    2、子类:由基类派生的类,又称为派生类

    3、继承的用法:通过extends关键字实现

    class 父类名{

            构造方法

            普通方法

    }

    class 子类名 extends 父类名{

            构造方法

            普通方法

    }

    4、super关键字:代表是父类,在类的继承过程中访问父类的构造函数、普通函数

    1. class Father{
    2. constructor(name,sex){
    3. this.name= name,
    4. this.sex = sex
    5. }
    6. display(){
    7. console.log(`姓名:${this.name} 性别:${this.sex}`);
    8. }
    9. }
    10. class Son extends Father{
    11. constructor(name,sex,address,phone){
    12. super(name,sex),
    13. this.address = address,
    14. this.phone = phone
    15. }
    16. show(){
    17. console.log(`姓名:${this.name} 性别:${this.sex} 地址:${this.address} 电话:${this.phone}`);
    18. }
    19. }
    20. let son1 = new Son('小黑','男','西安','13198302930')
    21. son1.show();

    5、子类的普通方法与父类的普通方法同名时,子类方法覆盖父类的方法

    类中的普通方法又称为实例方法或成员方法

    1. class Animal{
    2. eat(food){
    3. console.log(`${food}`);
    4. }
    5. sleep(){
    6. console.log('在睡觉');
    7. }
    8. }
    9. class Rabbit extends Animal{
    10. eat(){
    11. super.eat('兔子吃草')
    12. }
    13. }
    14. class Tiger extends Animal{
    15. eat(){
    16. super.eat('老虎吃肉')
    17. }
    18. }
    19. let rabbit = new Rabbit()
    20. rabbit.eat();
    21. rabbit.sleep();
    22. let tiger = new Tiger();
    23. tiger.eat();
    24. tiger.sleep();

  • 相关阅读:
    【广度优先搜索】leetcode 515. 在每个树行中找最大值
    C语言:动态内存管理
    几种常见采样方法及原理
    【无线图传】基于FPGA的简易无线图像传输系统verilog开发,matlab辅助验证
    我的2023年终回顾:以终为始,持续更新
    【Javascript保姆级教程】Javascript数据类型和算术运算符
    2024-5-9-从0到1手写配置中心Config之@ConfigurationProperties热更新
    基于全景运动感知的飞行视觉脑关节神经网络全方位碰撞检测
    Linux内核之堆溢出的利用
    354. 俄罗斯套娃信封问题
  • 原文地址:https://blog.csdn.net/m0_73634593/article/details/132722366