11、TypeScript 实战 - 类的访问类型

class类中的访问类型(public 、private、和protected)

public

  • 从英文字面的解释就是公共的或者说是公众的,在程序里的意思就是允许在类的内部和外部被调用
  • 如果在class中不给访问属性作任何定义,那么默认的就是public访问属性
class person {
   name:string
   sayHi(){
       return this.name +"你好!"
        // this.name 就是内部调用   
   }
}
let Person = new person()
// 外部调用
Person.name = "小哈"
console.log(Person.name) 
// 运行结果为:小哈
console.log(Person.sayHi())
//运行结果为:小哈你好!

private

  • 只允许再类的内部被调用,外部不允许调用

class person {
   private content="我是人类"
   private sayHi(){
      return this.content //此处为内部调用是允许的
   }
}
let Person = new person()
Person.content = "aaa" //错误的使用
// 这样就是错误的格式 因为 属性“content”为私有属性,只能在类“person”中访问

protected

  • 允许在类内及继承的子类中使用
class person {
   protected content = "我是人类"
   sayHi(){
      return this.content //内部可以访问
   }
}
let Person = new person()
//Person.content="我是一个人" //外部不行
class xiaoHa extends person{
   public sayHi(){
      return this.content //在继承的子类中可以调用
   }
}
let XH= new xiaoHa()
console.log(XH.sayHi())
//打印结果为:我是人类