面向对象思想
基础部分,学习类的时候,仅讨论新增的语法部分。
属性
使用属性列表来描述类中的属性
属性的初始化检查
strictPropertyInitialization:true
属性的初始化位置:
- 构造函数中
- 属性默认值
属性可以修饰为可选的
属性可以修饰为只读的
使用访问修饰符
访问修饰符可以控制类中的某个成员的访问权限
- public:默认的访问修饰符,公开的,所有的代码均可访问
- private:私有的,只有在类中可以访问
- protected:暂时不讲
Symble
属性简写
如果某个属性,通过构造函数的参数传递,并且不做任何处理的赋值给该属性。可以进行简写
访问器
作用:用于控制属性的读取和赋值
案例代码
class User {
readonly id: number //不能改变
gender: "男" | "女" = "男"
pid?: string
private _publishNumber: number = 3; //每天一共可以发布多少篇文章
private _curNumber: number = 0; //当前可以发布的文章数量
constructor(public name: string, private _age: number) {
this.id = Math.random();
}
set age(value: number) {
if (value < 0) {
this._age = 0;
}
else if (value > 200) {
this._age = 200;
}
else {
this._age = value;
}
}
get age() {
return Math.floor(this._age);
}
publish(title: string) {
if (this._curNumber < this._publishNumber) {
console.log("发布一篇文章:" + title);
this._curNumber++;
}
else {
console.log("你今日发布的文章数量已达到上限");
}
}
}
const u = new User("aa", 22);
//c#
u.age = 1.5;
console.log(u.age);
u.publish("文章1")
u.publish("文章2")
u.publish("文章3")
u.publish("文章4")
u.publish("文章5")
u.publish("文章6")