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

typescript 入门教程二的更多相关文章

  1. 无废话ExtJs 入门教程二十一[继承:Extend]

    无废话ExtJs 入门教程二十一[继承:Extend] extjs技术交流,欢迎加群(201926085) 在开发中,我们在使用视图组件时,经常要设置宽度,高度,标题等属性.而这些属性可以通过“继承” ...

  2. 无废话ExtJs 入门教程二十[数据交互:AJAX]

    无废话ExtJs 入门教程二十[数据交互:AJAX] extjs技术交流,欢迎加群(521711109) 1.代码如下: 1 <!DOCTYPE html PUBLIC "-//W3C ...

  3. 无废话ExtJs 入门教程二[Hello World]

    无废话ExtJs 入门教程二[Hello World] extjs技术交流,欢迎加群(201926085) 我们在学校里学习任何一门语言都是从"Hello World"开始,这里我 ...

  4. mongodb入门教程二

    title: mongodb入门教程二 date: 2016-04-07 10:33:02 tags: --- 上一篇文章说了mongodb最基本的东西,这边博文就在深入一点,说一下mongo的一些高 ...

  5. SpringBoot入门教程(二)CentOS部署SpringBoot项目从0到1

    在之前的博文<详解intellij idea搭建SpringBoot>介绍了idea搭建SpringBoot的详细过程, 并在<CentOS安装Tomcat>中介绍了Tomca ...

  6. PySide——Python图形化界面入门教程(二)

    PySide——Python图形化界面入门教程(二) ——交互Widget和布局容器 ——Interactive Widgets and Layout Containers 翻译自:http://py ...

  7. Elasticsearch入门教程(二):Elasticsearch核心概念

    原文:Elasticsearch入门教程(二):Elasticsearch核心概念 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:ht ...

  8. RabbitMQ入门教程(二):简介和基本概念

    原文:RabbitMQ入门教程(二):简介和基本概念 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn ...

  9. JasperReports入门教程(二):中文打印

    JasperReports入门教程(二):中文打印 背景 在上一篇中我们介绍了JasperReport的基本入门,也展示了一个报表.但是我们的示例都是使用的英文,如果我们把需要打印的数据改为中文会怎么 ...

随机推荐

  1. Python必备收藏!Pycharm 常用快捷键思维导图!

    本内容首发公众号[计算机视觉联盟],关注获取更多资料! 考虑到可能图片压缩,将思维导图的pdf和jpg版本都上传了百度云,大家可以下载打印一张A4纸,方便查询! 公众号后台回复关键词: 2019082 ...

  2. jquery让form表单异步提交

    1.监听表单提交事件,并阻止表单提交 $("form").submit(function(e) { return false;//阻止表单提交 }) 2.拿到表单内容 let da ...

  3. intellij idea 2018 激活

    http://idea.toocruel.net http://active.chinapyg.com/ 2018-8-6可用 http://xdouble.cn:8888/ 2018年7月11号 测 ...

  4. Docker运行mysql,redis,oracle容器和SpringBoot项目

    dokcer运行SpringBoot项目 from frolvlad/alpine-oraclejdk8:slim VOLUME /tmp ADD target/demo-0.0.1-SNAPSHOT ...

  5. SpringBootSecurity学习(11)网页版登录之URL动态权限

    动态权限 前面讨论用户登录认证的时候,根据用户名查询用户会将用户拥有的角色一起查询出来,自动实现判断当前登录用户拥有哪些角色.可以说用户与角色之间的动态配置和判断security做的非常不错.不过在配 ...

  6. linux mint 17编译android 2.3.1错误记录

    有转载这里的也有添加的. ################# Fix 1 ########################## Error: frameworks/base/include/utils ...

  7. springboot 集成druid

    1.druid简介 Druid首先是一个数据库连接池.Druid是目前最好的数据库连接池,在功能.性能.扩展性方面,都超过其他数据库连接池,包括DBCP.C3P0.BoneCP.Proxool.JBo ...

  8. 【SQL server基础】SQL视图加密,永久隐藏视图定义的文本

    SQL可以对视图进行加密.也就是,可永久隐藏视图定义的文本. 注意   此操作不可逆.加密视图后,无法再修改它,因为无法再看到视图定义.如果需要修改加密视图,则必须删除它并重新创建另一个视图. 示例代 ...

  9. php基础——语法、变量

    一.php语法: 1.php语言需要写在<?php  ?>标签里面 2.php语言每行结束需要使用:作为结束符 3.php是一门弱语言,不要求先声明变量 4.可嵌套在HTML和js语言中 ...

  10. Knative 实战:基于 Knative Serverless 技术实现天气服务-下篇

    上一期我们介绍了如何基于 Knative Serverless 技术实现天气服务-上篇,首先我们先来回顾一下上篇介绍的内容: 通过高德天气 API 接口,每隔 3 个小时定时发送定时事件,将国内城市未 ...