Typescript中的类

2019-08-17  本文已影响0人  iDevOps

在ES5中, 我们通过构造函数实现类的概念, 通过原型链实现集成。在ES6中,引入了class, Typescript除了实现所有ES6中的类的功能,还添加类一些新的用法

先了解下什么是类

类就是定义一件事物的抽象特点, 包含它的属性和方法

面向对象

Typescript是面向对象的编程语言, 在学习类之前,我们首先先了解以下什么是对象,面向对象的三大特性是什么?

class Person{
  private _name:string; // 私有属性, 最好前面有个_
  protected age:number; // 子类和自己都可以访问
  public getName(){ // 共有属性, 谁都可以访问getName方法
    return this._name;
  }
}
class Person{
    // 属性
    private _name:string;
    private _age:number;
    // 构造方法
    constructor(name:string, age:number){
        this._name = name;
        this._age = age;
    }
    // 方法
    public function say():void{
        console.log(this._name + " say ....");
    }
}
// Student继承Person
class Student extends Person{
    private _address: string;
    constructor(name:string, age:number, address:string){
        // 必须有,放在最前面, 调用父类的构造方法
        super(name, age);
        this._address = address;
    }
    public function getAddress():void{
        console.log(this._address);
    }
}

var student = new Student("sn", 11, 'aa');
student.getAddress();
student.say(); // 从父类继承来的
存取器

类似于Java的getter和setter方法, 使用getter和setter可以改变属性的值和获取属性的值

class Person{
  constructor(name){
    this.name = name;
  }
  get name(){
    return this.name;
  }
  set name(val){
    console.log('setter:' + val);
    this.name = val;
  }
}
// 测试
let person = new Person('lisi');
console.log(person.name); // lisi
person.name = 'zhangsan';
console.log(person.name); // zhangsan
静态方法
class Person{
  static eat(){
    console.log('eat.....');
  }
}
Person.eat();  // 输出eat.....

类我们就先就介绍这么多, 下篇我们介绍Typescript的抽象类, 如果喜欢,请给点个赞或关注下,这里多谢啦!!!

上一篇下一篇

猜你喜欢

热点阅读