zoukankan      html  css  js  c++  java
  • typescript 入门教程二

    ts中面向对象成员修饰符:public , private , protexted(ts官方网站:ts

    在ts中,默认的成员修饰符就是public

    • public:是表示是公开的,在任何地方,都可以调用,不管在类中,还是子类中,还是对象中均是可以直接调用
    • private:是表示私有的,只能在类中访问,不能在子类或者对象中访问,要调用私有的属性或者方法,可以通过在类中设置公有的方法访问私有的成员,对外暴露公有的方法进行访问,子类继承的时候,也可以继承父类私有的属性和方法,但是也要通过在子类继承过来的公有的方法进行访问私有的属性
    • protected: 只能在类中或者子类中进行访问,但是不能在自身类或者子类对象中访问
      总的老说,权限范围:public>protected>private

    注意:
    1.如果当前类被申明为private或者protected,当前类不能new ( );当父类的构造方法被申明为protected,子类重写父类的构造方法之后,子类可以new;如果父类构造方法申明私有,子类不能new和继承。
    2.当某个类不想被实例化,只是想子类继承后实例化,可以将该类的构造方法申明为protected,但是注意这时候需要子类通过super继承父类的构造方法才行
    3.当一个类既不想自身实例化,也不想子类实例化,可以将构造方法申明为private
    4.子类中如果想调用父类的构造方法,可以通过super关键字实现
    5.一般构造方法修饰是public或者直接不写


    静态方法和静态属性
    ![file](https://img2018.cnblogs.com/blog/1762823/201910/1762823-20191030195753429-79152640.jpg)
    将一个属性或者方法通过static修饰,就变成了静态属性和方法,**静态属性和静态方法只能通过类名方法,不能通过对象访问** *如何判断用静态成员,什么时候用非静态成员? * 当一个属性或者方法是属于对象的时候,用非静态成员表示,当一个属性或者方法是属于类的时候,使用静态成员 ``` class Person{ static firstName:string='jack' static lastName:string='ma' private constructor(firstName:string,lastName:string){ Person.firstName=firstName Person.lastName=lastName } //静态方法只能访问静态成员,反之非静态方法既可以访问静态成员,也可以访问非静态成员 static getFullName(){ return `${this.firstName} ${this.lastName}` } } ``` 如果静态方法或者静态属性被修饰protected或者private,在只能在类中被调用,在类外面不能通过类名访问,如果需要在类外面访问,可以通过暴露一个公有的方法进行访问
    只读属性(readonly)

    readonly name:string='jack'

    枚举

    主要用在可以预知的类型上,如性别分成男女,一周分成七天,都可以定义成枚举类型

    // 注意枚举表现在页面是字符串形式,但是其值是数字类型,好比下面 Week.SUN==0
    enum Week{
       SUN,MON,TUE,WED,THU,FRI,SAT
    }
    let day:Week=Week.MON
    
  • 相关阅读:
    全国(省,直辖市,自治区,特别行政区)映射集合
    数据库辅助类
    时间格式化工具类
    密码加密(MD5)
    算法竞赛入门经典——第3章答案
    第三章学习小结—-转
    isalpha函数和isdigit函数
    重新实现库函数
    树状数组总结——转
    线段树——转
  • 原文地址:https://www.cnblogs.com/tangkaizhen/p/11767331.html
Copyright © 2011-2022 走看看