TS--类(class)

一、基本知识

        含义:它是用来创建具有相似属性和行为的对象的一个模板或蓝图。类定义了对象的属性(成员变量)和行为(成员函数),并通过创建对象来实例化类。对象是具有类类型的变量

        类与对象的关系:(1)类是对象的抽象,而对象是类的剧吐实例

                                     (2)类是抽象的,不占用内存,而对象是具体的,占用存储空间

                                     (3)类是用于创建对象的规划,抽象

        

二、类

1-1.类

        用关键字class来定义类,类中的成员个数可以是0-n个:可以放的有字段(属性)、方法(函数)

        格式:添加可选属性方法和前面一样的用“?“

        TS--类(class)_第1张图片

                81行:创建一个类

                82-83:添加属性name、color类型都为string

                84:添加属性age并给age赋初始值

                85:构造函数:用于初始化对象的属性,而构造函数里面的成员用于定义对象的行为

                86-88中的this是下面的Cat中传入的值

                91:创建一个对象cat

                92:打印cat

                

三、对象和内存

  1. new多次本质上是创建了多个了对象, 只有创建了对象,才能使用对象访问对象的字段或方法;

  2. 对象在堆中,计算机堆中内存无名字,只能通过地址使用之,堆中对象地址通过hash后得到引用值,引用类型变量保存的就是引用值;

  3. 每个对象都有唯一引用, 只能通过对象的引用使用对象, new 会返回对象的引用(this);

  4. 当类中定义了属性,该类的每个对象都会独立开辟出属性成员,当前对象独享;

  5. 创建对象时,方法不会被开辟出来,同一个类的方法被所有该类对象共用(原型和原型链);

  6. 同一对象可被多个变量引用,当一个对象没有引用时,对象的生命就被GC(拉圾回收机制)管理了, 当对象销毁时,对象中独享的字段成员也会随之销毁;

  7. 只有类不能做事情,类的对象才有用, 类成员(静态成员例外)

四、this:和js中的this用法一样,谁调用,this就指向谁

五、构造函数(constructor)

        含义:构造函数是类中的一种特殊方法,它在创建类的实例时自动调用,用于初始化对象的属性和执行其他必要的操作。可以有0-n个参数,构造函数没有返回值,也不用声明返回值类型

        TS--类(class)_第2张图片

六、静态方法

        含义:使用 static 修饰符修饰的方法称为静态方法,它们不需要实例化,而是直接通过类名来调用。

        TS--类(class)_第3张图片        

        

七、存取器

        含义:允许我们通过 getter 和 setter 方法来控制对类属性的访问和赋值操作

        格式:

八、继承(extends)

        含义;将公共部分封装到一个类中,要使用的时候直接用extends来即可

        格式:

class animal {
    name: string
    age: number
}
class dog extend animal{//此时dog类中在有了play着一个属性的同时,还拥有了animal类中的所有属性
    play: boolean

}

注:1.子类先执行,在执行子类的过程中运行父类

        2.一个子类只能继承一个父亲,而一个类可以有多个子类。子类也可以作为别的类的父类

        3.子类继承父类后并不影响父类的使用

        4.子类对象可以访问从直接父类或间接父类继承下来的成员(父母的父母的父母。。。。)

九、super

        含义:用于访问父类(基类)的方法和属性的关键字

        与this相比:super(范围小一些)主要访问父类对象,this(范围打一下)访问子类对象,也可以访问父类对象。通常用this来访问数据,super修改父类成员

  1. 如果派生类(自己创建的类没有自己的构造函数,则会使用默认的构造函数,并在其中隐式调用父类的构造函数。
  2. 如果派生类具有自己的构造函数,则必须在派生类的构造函数中使用 super() 来调用父类的构造函数。若父类里面什么也没有,子类的构造函数中也必须使用super()
  3. 在构造函数中使用 super() 调用父类的构造函数时,必须确保它是构造函数中的第一条语句。

        TS--类(class)_第4张图片

十、访问权限修饰符

修饰符分类:public(公用的)、protected(受保护的)、private(私有的)

修饰符 当前内部 子类内部 对象
public 可以 可以 可以
protected 可以 可以 不可以
private 可以 不可以 不可以

1.public(公用的)

        含义:被public修饰的成员(字段和方法)在任何地方都能被访问

2.protected(受保护的)

        含义:被修饰的成员可以在所属类内部和子类中能被访问,在外部(对象)无法访问。

3.private(私有的)

        含义:被修饰的成员只能在该成员所属类内部被访问,在外部无法访问。

你可能感兴趣的:(jvm,node.js,开发语言,前端,javascript)