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
typescript 入门教程二的更多相关文章
- 无废话ExtJs 入门教程二十一[继承:Extend]
无废话ExtJs 入门教程二十一[继承:Extend] extjs技术交流,欢迎加群(201926085) 在开发中,我们在使用视图组件时,经常要设置宽度,高度,标题等属性.而这些属性可以通过“继承” ...
- 无废话ExtJs 入门教程二十[数据交互:AJAX]
无废话ExtJs 入门教程二十[数据交互:AJAX] extjs技术交流,欢迎加群(521711109) 1.代码如下: 1 <!DOCTYPE html PUBLIC "-//W3C ...
- 无废话ExtJs 入门教程二[Hello World]
无废话ExtJs 入门教程二[Hello World] extjs技术交流,欢迎加群(201926085) 我们在学校里学习任何一门语言都是从"Hello World"开始,这里我 ...
- mongodb入门教程二
title: mongodb入门教程二 date: 2016-04-07 10:33:02 tags: --- 上一篇文章说了mongodb最基本的东西,这边博文就在深入一点,说一下mongo的一些高 ...
- SpringBoot入门教程(二)CentOS部署SpringBoot项目从0到1
在之前的博文<详解intellij idea搭建SpringBoot>介绍了idea搭建SpringBoot的详细过程, 并在<CentOS安装Tomcat>中介绍了Tomca ...
- PySide——Python图形化界面入门教程(二)
PySide——Python图形化界面入门教程(二) ——交互Widget和布局容器 ——Interactive Widgets and Layout Containers 翻译自:http://py ...
- Elasticsearch入门教程(二):Elasticsearch核心概念
原文:Elasticsearch入门教程(二):Elasticsearch核心概念 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:ht ...
- RabbitMQ入门教程(二):简介和基本概念
原文:RabbitMQ入门教程(二):简介和基本概念 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn ...
- JasperReports入门教程(二):中文打印
JasperReports入门教程(二):中文打印 背景 在上一篇中我们介绍了JasperReport的基本入门,也展示了一个报表.但是我们的示例都是使用的英文,如果我们把需要打印的数据改为中文会怎么 ...
随机推荐
- 解决commBind: Cannot bind socket FD 18 to [::1]: (99) Cannot assign requested address squid
最近玩squid主要是为了爬虫代理,但是使用docker搭建squid的时候发现,docker一直默认使用的 ipv6,但是squid使用ipv4,导致无法绑定,出现commBind: Cannot ...
- 【Jsp】利用iframe实现action不跳转
<form role="form" target="id_frame" action="dk" method="post&q ...
- FPGA 内部详细架构你明白了吗?
FPGA 芯片整体架构如下所示,大体按照时钟域划分的,即根据不同的工艺.器件速度和对应的时钟进行划分: FPGA 内部详细架构又细分为如下六大模块: 1.可编程输入输出单元(IOB)(Input Ou ...
- 格子游戏Grid game CodeForce#1104C 模拟
题目链接:Grid game 题目原文 You are given a 4x4 grid. You play a game — there is a sequence of tiles, each o ...
- 《HelloGitHub》第 42 期
兴趣是最好的老师,HelloGitHub 就是帮你找到兴趣! 简介 分享 GitHub 上有趣.入门级的开源项目. 这是一个面向编程新手.热爱编程.对开源社区感兴趣 人群的月刊,月刊的内容包括:各种编 ...
- pandas.DataFrame的groupby()方法的基本使用
pandas.DataFrame的groupby()方法是一个特别常用和有用的方法.让我们快速掌握groupby()方法的基础使用,从此数据分析又多一法宝. 首先导入package: import p ...
- 又写了两个实用的微信小程序
忙里偷闲,最近又写了两个小程序. 一个是手机壁纸小程序,名字叫[来搜图],特点是界面干净清爽,没有多余的东西.开发这个是因为讨厌市面上那些壁纸app那样那么多的广告,真的太影响体验了.而且小程序更加轻 ...
- SpringBoot进阶教程(六十二)整合Kafka
在上一篇文章<Linux安装Kafka>中,已经介绍了如何在Linux安装Kafka,以及Kafka的启动/关闭和创建发话题并产生消息和消费消息.这篇文章就介绍介绍SpringBoot整合 ...
- 我的mongoDb之旅(一)
开发环境 php版本:7.0.10 mongodb版本:1.5 开发框架:tp5 数据库工具:navicat12formongodb 可以参考的外部文件链接 tp5中mongodb的扩展说明:http ...
- 使用XAMPP配置Apache服务器反向代理
反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时 ...