typeScript(6)-面向对象编程-修饰符
访问修饰符
TypeScript语言和Java很像(因为我只会这一门个面向对象的语言(c#没好好学)),类中属性的访问可以用访问修饰符来进行限制。访问修饰符分为:public、protected、private。
- public:公有修饰符,可以在类内或者类外使用public修饰的属性或者行为,默认修饰符。
- protected:受保护的修饰符,可以本类和子类中使用protected修饰的属性和行为。
- private : 私有修饰符,只可以在类内使用private修饰的属性和行为。
我们还是写一个类,用一些访问修饰符来修饰。
class DaoShan1{
public sex:string
protected name : string
private age : number
public constructor(sex:string,name:string,age:number){
this.sex = sex
this.name = name
this.age = age
}
public sayh(){
console.log("你好!")
}
protected saylove(){
console.log("我爱你!")
}
}
var jj:DaoShan1 = new DaoShan1("女","热巴",18)
console.log(jj.sex)
console.log(jj.name) //报错 属性“name”受保护,只能在类“DaoShan1”及其子类中访问
console.log(jj.age) //报错 属性“age”为私有属性,只能在类“DaoShan1”中访问
console.log(jj.sayh)
console.log(jj.saylove) //报错 属性“saylove”受保护,只能在类“DaoShan1”及其子类中访问
只读属性修饰符
使用readonly修饰符将属性设置为只读,只读属性必须在生命时或者构造函数里被初始化(注意)。
我们声明一个man的抽象类,里边只有一个属性sex,并且是只读。
class Man{
public readonly sex:string = '男'
}
var man:Man = new Man()
man.sex='女' //报错 无法分配到“sex”,因为它是常数或只读属性