美文网首页
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