在 TypeScript 中,类是实现面向对象编程的核心概念之一。面向对象编程(OOP)作为一种编程范式,将程序中的数据与操作数据的方法组织成对象,使得程序结构更加模块化和易于理解,通过对象之间的协同合作,可以实现更为复杂的程序功能。
一、类的定义与使用
1. 类的语法说明
类是对象的蓝图或模板,它定义了对象的属性(数据)和行为(方法)。以下是一个类的定义示例:
class RenClass {
id:number;
name:string;
age:number;
constructor(id:number,name:string){
this.id = id;
this.name = name;
}
introduce(): string{
return `我叫 ${this.name},我${this.age}岁了`
}
}
在这个例子中,`RenClass`类定义了三个属性`id`、`name`和`age`,以及一个方法`introduce`。构造函数`constructor`用于在创建对象时初始化属性。
2. 对象的创建与属性访问 创建对象使用`new`关键字,如下所示:
```typescript let ren = new RenClass(111, 'aaa'); ```
可以通过对象访问类的属性,例如读取属性值:
```typescript console.log(ren.name); ```
也可以修改属性值:
```typescript ren.name = 'bbb'; console.log(ren.name); ```
3. 对象方法的调用 对象创建后,可以通过对象调用类中声明的方法:
```typescript let tro = ren.introduce(); console.log(tro); ```
二、静态成员
TypeScript 中的类可以包含静态成员,包括静态属性和静态方法。静态成员隶属于类本身,而不属于某个对象的实例。静态成员通常用于定义一些常量或通用的方法。
1. 声明静态成员 使用`static`关键字声明静态成员,例如:
class Constants{
static count:number = 1;
}
class Utile{
static toLowerCase(str:string){
return str.toLocaleLowerCase();
}
}
2. 使用静态成员 静态成员无需通过对象实例访问,直接通过类本身访问:
```typescript console.log(Constants.count); console.log(Utile.toLowerCase('aaaaa bbbb')); ```
三、继承
继承是面向对象编程中的重要机制,允许一个类(子类或派生类)继承另一个类(父类或基类)的属性和方法。子类可以直接使用父类的特性,并根据需要添加新的特性或覆盖现有的特性。
1. 继承的语法 使用`extends`关键字实现类的继承,
例如:
class A extends RenClass{
aNumber: string;
constructor(id: number,name: string,aNumber: string){
super(id,name);
this.aNumber = aNumber;
}
introduce(): string {
return super.introduce + `,我是a`;
}
}
let aa = new A(11,'wang','103');
console.log(aa.introduce);
在子类的构造函数中,必须使用`super()`调用父类的构造函数来初始化继承自父类的属性。
2. 继承的特点 -
在子类中可以使用`this`关键字访问继承自父类的属性和方法。 - 在子类中可以使用`super`关键字访问父类定义的方法。
四、访问修饰符
访问修饰符用于控制类成员(属性、方法等)的可访问性。TypeScript 提供了三种访问修饰符:`private`、`protected`和`public`。
1. 不同访问修饰符的含义
`private`修饰的属性或方法是私有的,只能在声明它的类中被访问。 - `protected`修饰的属性或方法是受保护的,只能在声明它的类和其子类中被访问。 - `public`修饰的属性或方法是公有的,可以在任何地方被访问到。默认情况下,所有的属性和方法都是`public`的。
2. 示例
class PersonDemo {
private id: number;
protected name: string;
public age: number;
constructor(id: number,name: string,age: number){
this.id = id;
this.name = name;
this.age = age;
}
}
class StrudentDemo extends PersonDemo{
}
总结:TypeScript 的类提供了强大的面向对象编程能力,通过类的定义、静态成员、继承和访问修饰符等特性,可以构建出结构清晰、可维护性高的代码。理解和正确使用这些特性对于开发高质量的 TypeScript 应用程序至关重要。