在TypeScript中,类是一种用于创建对象的蓝图,它定义了对象的属性和方法。类可以看作是对象的模板,通过实例化类可以创建具体的对象。
定义类
要定义一个类,可以使用 class
关键字后跟类的名称。类的名称通常使用帕斯卡命名法(首字母大写)。
class Person {
// 类的属性和方法在这里定义
}
类的属性和方法
类可以包含属性和方法,用于描述对象的状态和行为。
属性
类的属性定义了对象的状态,它们保存了对象的数据。
代码语言:javascript复制class Person {
name: string;
age: number;
}
构造函数
构造函数是一个特殊的方法,在创建对象时被调用。它用于初始化对象的属性。
代码语言:javascript复制class Person {
name: string;
age: number;
constructor(name: string, age: number) {
this.name = name;
this.age = age;
}
}
方法
方法定义了对象的行为,它们是类中的函数。
代码语言:javascript复制class Person {
name: string;
age: number;
constructor(name: string, age: number) {
this.name = name;
this.age = age;
}
sayHello() {
console.log(`Hello, my name is ${this.name} and I'm ${this.age} years old.`);
}
}
实例化类
要使用类创建对象,可以使用 new
关键字后跟类名,并传入构造函数的参数。
const person = new Person("John", 25);
类的继承
TypeScript支持类的继承,可以通过继承一个基类来创建派生类。
代码语言:javascript复制class Student extends Person {
grade: number;
constructor(name: string, age: number, grade: number) {
super(name, age);
this.grade = grade;
}
study() {
console.log(`${this.name} is studying in grade ${this.grade}.`);
}
}
派生类可以继承基类的属性和方法,并可以添加自己的属性和方法。
访问修饰符
TypeScript提供了访问修饰符来控制类的属性和方法的访问权限。
public
:默认的访问修饰符,公开访问,可以在类的内部和外部访问。private
:私有访问,只能在类的内部访问。protected
:受保护的访问,只能在类的内部和派生类中访问。
class Person {
public name: string; // 公开访问
private age: number; // 私有访问
protected gender: string; // 受保护的访问
constructor(name: string, age: number, gender: string) {
this.name = name;
this.age = age;
this.gender = gender;
}
}
类的静态属性和方法
静态属性和方法属于类本身,而不是类的实例。可以使用 static
关键字来定义静态属性和方法。
class MathUtils {
static PI: number = 3.14159;
static calculateCircumference(radius: number): number {
return 2 * MathUtils.PI * radius;
}
}
静态属性和方法可以通过类名直接访问,而不需要实例化类。
代码语言:javascript复制console.log(MathUtils.PI); // 输出: 3.14159
const circumference = MathUtils.calculateCircumference(5);
console.log(circumference); // 输出: 31.4159