类 class
要想面向对象,操作对象,首先要拥有对象,那么如何创建对象?
要创建对象,必须先定义类,所谓的类可以理解为对象的模型,程序中可以根据类创建指定类型的对象;
定义类:
class 类名 {
属性名:类型;
constructor(参数:类型){
this.属性名 = 参数;
}
方法名(){
......
}
}
在类中,直接定义的属性是实例属性,需要通过实例去访问;
使用 readonly 开头的属性表示一个只读的属性,只可读取不可修改;
使用 static 开头的属性是静态属性(类属性),可以直接通过类去访问;
注意:我们甚至可以使用 static readonly 属性名:类型 = 值 去定义一个静态只读的属性;(static和readonly顺序不能颠倒!)
同样的方法也分实例方法、静态方法 设置方法同属性;
eg:
class Person {
// 定义实例属性
name:string = "张三";
// readonly开头的属性表示一个只读的属性
readonly age:number = 18;
// 属性前使用static关键字可以定义类属性(静态属性)
static sex:string = "男";
// 定义方法
sayHello(){
console.log('Hello')
}
static sayHi(){
console.log("Hi")
}
}
const per = new Person()
console.log(per) //Person {name: '张三', age: 18}
per.name="李四";
console.log(per.name);
// per.age=20 // 报错
console.log(Person.sex)//男
per.sayHello(); // Hello
Person.sayHi(); //Hi