類的訪問修飾符
- public類成員默認(rèn)都是公開的
- private,聲明私有成員,私有成員無法被繼承,不希望被外部修改的成員定義為私有
- protected 可以繼承,只能內(nèi)部訪問
- readonly只讀的和const定義的常量類似
// 類成員默認(rèn)都是公開的
// 類成員默認(rèn)都是public
// private,聲明私有成員,私有成員無法被繼承
// 我們可以把不希望被外部修改的成員定義為私有
// protected 可以繼承
// readonly只讀的和const定義的常量類似
class Person{
public readonly name: string = 'zs';
// 類成員默認(rèn)都是public
age: number;
//私有化成員,只能內(nèi)部訪問
// 聲明類成員的同事為其賦值
private readonly type: string = '人類'
//受保護成語和private一樣外部不能訪問
//但是可以繼承
protected foo: string = 'bar';
public getType() {
// 在類的內(nèi)部訪問私有成員
//但外部不能訪問
return this.type;
}
// changeType() {
// this.typetype = 'haha'
// }
}
//new Person()
new Person().getType();
//私有成員無法被繼承
class Student extends Person{
getfoo() {
// tpye不能訪問
// this.tpye
console.log(this.foo)
}
}
new Student().getfoo();
//new Person().name = 'lisi';
類的通過修飾符簡寫成員
class Person1 {
// public name: string;
// public age: number;
// constructor(name: string, age: number) {
// this.name = name
// this.age = age
// }
public gender:string
constructor(public name: string, public age: number,gender:string) {
this.gender = gender;
}
}
new Person1('zs', 18,'男');