返回

TypeScript 中声明和实例化类:面向对象编程的基础

前端

TypeScript 中的类:构建可重用的对象蓝图

在 TypeScript 的世界中,类是一种构建和管理复杂数据结构的强大机制。类允许你创建可重用的对象模板,包含特定属性和行为,从而极大地简化了软件开发过程。

声明类:构建你的对象蓝图

声明一个类就如同描绘一栋房屋的蓝图。你使用 class ,后跟类名,就像你在蓝图上命名你的房屋一样。类的主体包含了该类中属性和方法的声明,就像蓝图上标注的房间和门窗。

class Person {
  name: string;
  age: number;

  constructor(name: string, age: number) {
    this.name = name;
    this.age = age;
  }

  greet() {
    console.log(`Hello, my name is ${this.name} and I am ${this.age} years old.`);
  }
}

在上面的示例中,Person 类拥有两个属性 (nameage),就像房屋的卧室和厨房。它还包含一个构造函数,用于在创建类实例时初始化这些属性,就像蓝图上用于标记墙壁和地板的位置。此外,greet 方法就像一个门,允许你与类实例交互,就像房屋的门允许你进出。

实例化类:从蓝图中构建对象

一旦你有了类蓝图,你就可以使用 new 关键字来实例化它,就像根据蓝图建造一栋实际的房屋。这会创建一个新对象,该对象是类蓝图的具体实现,就像根据蓝图建造的实际房屋。

const person1 = new Person("John", 30);

person1 现在是一个 Person 类的实例,具有 nameage 属性,就像一栋建成房屋中的房间和厨房。你可以通过点运算符访问这些属性,就像你可以在房屋中使用门和窗户:

console.log(person1.name); // "John"
console.log(person1.age); // 30

你还可以调用实例方法,就像打开房屋的门:

person1.greet(); // "Hello, my name is John and I am 30 years old."

继承:扩展你的对象蓝图

TypeScript 中的类支持继承,就像在现实世界中,你可以从现有的房屋设计中获取灵感来建造新房屋。派生类使用 extends 关键字,后跟基类的名称。

class Employee extends Person {
  salary: number;

  constructor(name: string, age: number, salary: number) {
    super(name, age);
    this.salary = salary;
  }

  getSalary() {
    return this.salary;
  }
}

Employee 类从 Person 类继承了 nameage 属性,就像新房屋继承了原有房屋的房间和厨房。此外,它还添加了一个 salary 属性和一个 getSalary 方法,就像在新房屋中增加了一个书房和一个游戏室。

代码示例

为了进一步阐释,这里有一个更复杂的示例,展示了如何使用 TypeScript 中的类:

class Vehicle {
  make: string;
  model: string;
  year: number;

  constructor(make: string, model: string, year: number) {
    this.make = make;
    this.model = model;
    this.year = year;
  }

  getMake() {
    return this.make;
  }

  getModel() {
    return this.model;
  }

  getYear() {
    return this.year;
  }
}

class Car extends Vehicle {
  numWheels: number;

  constructor(make: string, model: string, year: number, numWheels: number) {
    super(make, model, year);
    this.numWheels = numWheels;
  }

  getNumWheels() {
    return this.numWheels;
  }
}

const car1 = new Car("Toyota", "Camry", 2023, 4);

console.log(car1.getMake()); // "Toyota"
console.log(car1.getModel()); // "Camry"
console.log(car1.getYear()); // 2023
console.log(car1.getNumWheels()); // 4

常见问题解答

1. TypeScript 中类的作用是什么?

TypeScript 中的类用于创建可重用的对象模板,其中包含特定的属性和方法,用于表示和操作数据。

2. 如何在 TypeScript 中实例化一个类?

使用 new 关键字后跟类名来实例化一个类,例如: const instance = new MyClass()

3. 什么是继承?

继承允许派生类从基类继承属性和方法,从而扩展或修改基类的功能。

4. TypeScript 中类的优势是什么?

类为创建具有封装、继承和多态性等特性的健壮且可维护的代码提供了结构和组织。

5. 如何在 TypeScript 中访问类属性和方法?

可以通过点运算符(例如,instance.propertyinstance.method())访问类属性和方法。

总结

TypeScript 中的类是一种强大的机制,可用于构建可重用的对象蓝图,从而简化软件开发。通过声明和实例化类,你可以创建具有特定属性和行为的对象,并利用继承来扩展和修改现有类。掌握 TypeScript 中的类对于构建健壮且可维护的应用程序至关重要。