美文网首页
《TypeScript》 - 类

《TypeScript》 - 类

作者: 张中华 | 来源:发表于2021-07-06 06:39 被阅读0次

TypeScript 是面向对象的 JavaScript。
类描述了所创建的对象共同的属性和方法。
TypeScript 支持面向对象的所有特性,比如 类、接口等。

TypeScript 类的定义与实例化

TypeScript 类定义方式如下:

class class_name { 
    // 类作用域
}

实例化方式如下:

var object_name = new class_name([ arguments ])

定义类的关键字为 class,后面紧跟类名,类可以包含以下几个模块(类的数据成员):

  • 字段 − 字段是类里面声明的变量。字段表示对象的有关数据。
  • 构造函数 − 类实例化时调用,可以为类的对象分配内存。
  • 方法 − 方法为对象要执行的操作。
访问控制修饰符

TypeScript 中,可以使用访问控制符来保护对类、变量、方法和构造方法的访问。TypeScript 支持 3 种不同的访问权限。

  • public(默认) : 公有,可以在任何地方被访问。
  • protected : 受保护,可以被其自身以及其子类和父类访问。
  • private : 私有,只能被其定义所在的类访问。

代码示例:

class Person {
    // 字段
    private age: number;

    // 构造函数 
    constructor(age:number) { 
        this.age = age; 
    }  
    
    // 方法
    public setAge(age:number):void {this.age = age;};
    public getAge():number {return this.age};
}

let personA = new Person(18);
console.log(personA.getAge()); // 18

personA.setAge(27);
console.log(personA.getAge()); //27

static 关键字

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

class Person {
    static uname: string = 'zzh';

    static printName(): void {
        console.log(this.uname);
    }
}

console.log(Person.uname); // zzh
Person.printName(); //zzh

类的继承

TypeScript 支持继承类,即我们可以在创建类的时候继承一个已存在的类,这个已存在的类称为父类,继承它的类称为子类。
类继承使用关键字 extends,子类除了不能继承父类的私有成员(方法和属性)和构造函数,其他的都可以继承。
TypeScript 一次只能继承一个类,不支持继承多个类,但 TypeScript 支持多重继承(A 继承 B,B 继承 C)。
语法格式如下:

class child_class_name extends parent_class_name

继承类的方法重写

类继承后,子类可以对父类的方法重新定义,这个过程称之为方法的重写。
其中 super 关键字是对父类的直接引用,该关键字可以引用父类的属性和方法。
代码示例:

class Person {
    // 字段
    private age: number;

    // 构造函数 
    constructor(age:number) { 
        this.age = age; 
    }  
    
    // 方法
    public setAge(age:number):void {this.age = age;};
    public getAge():number {return this.age};
}

let personA = new Person(18);
console.log(personA.getAge()); // 18

personA.setAge(27);
console.log(personA.getAge()); //27

// 类的继承
class Student extends Person {
    // 方法重写
    public setAge(age: number): void { 
        super.setAge(age + 100); // 调用父类的函数;
        console.log('重写父类方法');
    }
}

let studentA = new Student(18);
console.log(studentA.getAge()); // 18

studentA.setAge(18);
console.log(studentA.getAge()); // 118

类和接口

类可以实现接口,使用关键字 implements。
代码示例:

interface Car {
    name:string;
    color: string;
    run(): void;
}

class BMW implements Car {
    name:string = '宝马一号';
    color:string = '红色';
    run():void {
        console.log('宝马正在路上跑~~~~')
    }
}

var bmw1 = new BMW();
console.log(bmw1.name); // 宝马一号
console.log(bmw1.color); // 红色
bmw1.run(); // 宝马正在路上跑~~~~

通过以上对类的了解,对面向对象也有了一定的概念。面向对象虽说不是万能的,但是在编程思想层面上,还是对提升代码质量有很大的帮助的。

相关文章

  • TypeScript——类

    对类的使用:

  • Typescript —— 类

    类: 上面生成的按钮,点击的结果是“Hello,world”,上面例子中声明一个Greeter类。这个类有3个成员...

  • TypeScript类

    继承和多态 之前的JavaScript是基于原型(prototype)继承来实现可复用的“类”,而TypeScri...

  • TypeScript类

    javascript提供构造函数和原型的方式来构造复用组件; TypeScript提供类的概念;共同点都要实例化;...

  • typescript 类

    日期: 2019 年 9 月2 日 类 类的例子 继承 基于类的程序设计中一种最基本的模式是允许使用继承来扩展现有...

  • TypeScript 类

    类常用的语法: extends与super private、public、protected、readonly g...

  • TypeScript——类

    传统的JavaScript程序使用函数和基于原型的继承来创建可重用的组件,但对于熟悉使用面向对象方式的程序员来讲就...

  • TypeScript -- 类

    一 ,继承和成员修饰符 注意:类的属性都是实例属性而不是原型属性;方法是原型上的;类里面的属性都需要有初始值 成员...

  • TypeScript 类

    类 对于传统的 JavaScript 程序我们会使用函数和基于原型的继承来创建可重用的组件,但对于熟悉使用面向对象...

  • TypeScript类

    下面看一个使用类的例子: 我们声明一个Greeter类。这个类有3个成员:一个叫做greeting的属性,一个构造...

网友评论

      本文标题:《TypeScript》 - 类

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