在ts中,默認的成員修飾符就是publicsegmentfault
總的老說,權限範圍:public>protected>private 網站
注意:
1.若是當前類被申明爲private或者protected,當前類不能new ( );當父類的構造方法被申明爲protected,子類重寫父類的構造方法以後,子類能夠new;若是父類構造方法申明私有,子類不能new和繼承。
2.當某個類不想被實例化,只是想子類繼承後實例化,能夠將該類的構造方法申明爲protected,可是注意這時候須要子類經過super繼承父類的構造方法才行
3.當一個類既不想自身實例化,也不想子類實例化,能夠將構造方法申明爲private
4.子類中若是想調用父類的構造方法,能夠經過super關鍵字實現
5.通常構造方法修飾是public或者直接不寫this
<center>
</center>
將一個屬性或者方法經過static修飾,就變成了靜態屬性和方法,靜態屬性和靜態方法只能經過類名方法,不能經過對象訪問
如何判斷用靜態成員,何時用非靜態成員?
當一個屬性或者方法是屬於對象的時候,用非靜態成員表示,當一個屬性或者方法是屬於類的時候,使用靜態成員spa
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,在只能在類中被調用,在類外面不能經過類名訪問,若是須要在類外面訪問,能夠經過暴露一個公有的方法進行訪問 code
---
##### 只讀屬性(readonly)readonly name:string='jack'
##### 枚舉
主要用在能夠預知的類型上,如性別分紅男女,一週分紅七天,均可以定義成枚舉類型對象
// 注意枚舉表如今頁面是字符串形式,可是其值是數字類型,比如下面 Week.SUN==0 enum Week{ SUN,MON,TUE,WED,THU,FRI,SAT } let day:Week=Week.MON