美文网首页
typescript笔记(十三)

typescript笔记(十三)

作者: 执剑饮烈酒 | 来源:发表于2020-05-31 18:38 被阅读0次

类:描述了所创建的对象共同的属性和方法。

一、定义方式:

class class_name {

    // 类作用域

}

定义类的关键字class,后面紧跟类名,可以包含字段、构造函数、方法。

例如:

创建ff类

// class ff{

// }

二、创建类的数据成员

class Car {

    eng : string;

    constructor(eng:string){

        this.eng = eng

    }

    disp():void {

        console.log("发布 :  "+this.eng)

    }

}

三、创建实例化对象;

1)、语法:

var object_name = new class_name([ arguments ])

2)、类实例化时会调用构造函数;

例如:

var obj = new Car("Engine 1")

3)、类中的字段属性和方法可以使用 . 号来访问;

// 访问属性

obj.field_name

// 访问方法

obj.function_name()

例如:

class Car {

    // 字段

    eng : string;

    // 构造函数

    constructor(eng : string){

        this.eng = eng;

    }

    // 方法

    dis() : void {

        console.log(this.eng)

    }

}

// 创建对象

let obj = new Car('什么最美,太平世界最美!');

// 访问字段

console.log(obj.eng);  //什么最美,太平世界最美!

// 访问方法

obj.dis()      //什么最美,太平世界最美!

4)、类的继承:在创建类的时候继承一个已存在的类,这个已存在的类称为父类,继承它的类称为子类。

类继承使用关键字 extends,子类除了不能继承父类的私有成员(方法和属性)和构造函数,其他的都可以继承。

TypeScript 一次只能继承一个类,不支持继承多个类,但 TypeScript 支持多重继承(A 继承 B,B 继承 C)。

语法:

class child_class_name extends parent_class_name

例如:

class Father{

    Str : string;

    constructor(s : string){

        this.Str = s;

    }

}

class Son extends Father{

    dis() : void{

        console.log(this.Str)

  }

}

let obj = new Son('规划局');

console.log(obj.Str);

obj.dis()

子类只能继承一个父类,TypeScript 不支持继承多个类,但支持多重继承;

例如:

class root {

    str : string

}

class chlid extends root{}

class leaf extends chlid {}

let obj = new leaf();

obj.str = '吴刚'

console.log(obj.str)    //吴刚

5)、继承类的方法重写:子类可以对父类的方法重新定义;

其中 super 关键字是对父类的直接引用,该关键字可以引用父类的属性和方法。

例如:

class Fa{

    dop():void{

        console.log('父类继承方法')    //父类继承方法

    }

}

class Son extends Fa{

    dop():void{

        super.dop(); //调用父类的函数

        console.log('子类的方法')      //子类的方法

    }

}

let obj = new Son();

obj.dop()

6)、static关键字:用于定义类的数据成员(属性和方法)为静态的,静态成员可以直接通过类名调用。

例如:

class stat {

    static num : number;

    static dis():void{

        console.log('num的值:'+stat.num);

    }

}

stat.num = 78        // 初始化静态变量

stat.dis()      // 调用静态方法

7)、instanceof运算符:用于判断对象是否是指定的类型,如果是返回 true,否则返回 false。

例如:

class fa{}

class son{}

let obj = new fa();

let isfa = obj instanceof fa;

console.log("obj 对象是 fa 类实例化来的吗?"+isfa);    //obj 对象是 fa 类实例化来的吗?true

8)、访问控制修饰符:访问控制符用来保护对类、变量、方法和构造方法的访问;支持 3 种不同的访问权限。public、protected、private

public(默认):公有,可以在任何地方被访问。

protected : 受保护,可以被其自身以及其子类和父类访问。

private : 私有,只能被其定义所在的类访问。

例如:

class fa{

    public str : string = '吴刚'

    private str1 :string = '岳秀清'

    protected str2 : string = '吴与卿'

}

let obj = new fa();

console.log(obj.str)        //吴刚

// console.log(obj.str1)        //受保护的  str1  编译错误

// console.log(obj.str2)        //私有的  str2  编译错误

9)、类和接口:类可以实现接口,使用关键字 implements,并将 interest 字段作为类的属性使用。

例如:

interface fa{

    str : string

}

class son implements fa{

    str : string

    rebate : number

    constructor (str :string,rebate:number){

        this.str = str

        this.rebate = rebate

    }

}

let obj = new son('dd',78);

console.log('字符串'+obj.str,'number'+obj.rebate)    //字符串dd number78

相关文章

网友评论

      本文标题:typescript笔记(十三)

      本文链接:https://www.haomeiwen.com/subject/huerzhtx.html