TypeScript类的修饰符 public private protected的详细讲解
简单介绍一下public private protected
public:当一个类的成员变量没有修饰的时候,默认的就是 public 进行修饰。外部是可以进行访问的。
private属性只能够在父类的内部直接进行访问。 private读音【ˈpraɪ vɪ t】
protected:可以在父类或者子类内部访问,不能够在外部访问。
super
ps:super 可以调用父类中的公共属性和公共方法,以及受保护的方法。但是不能访问受保护的属性
1.修饰符 public
当一个类的成员变量没有修饰的时候,默认的就是 public 进行修饰。外界是可以进行访问的。
class Person {
age= 10 //没有修饰符默认是被public访问
private name = "张三" // private 属性只能够在Person类的内部 进行访问;
say() {
console.log("我的名字是" + this.name)
}
}
let p = new Person()
console.log(p.age) //可以正常访问
//console.log(p.name) //报错 属性“name”为私有属性,只能在类“Person”中访问
2.继承父类 extends
class Person {
age=10;
private name = "张三"; // private 属性只能够 在类的内部 进行访问;
say() {
console.log("我的名字是" + this.name);
}
}
//继承父类子类就可以访问父类中的属性和方法。
//如果父类是定义的私有属性或者方法的时候,子类就不可以进行访问。
class Children extends Person {
callPar() {
super.say(); //super 可以调用父类中公开的的属性 方法
}
}
var xm = new Children();
xm.say(); //我的名字是张三
protected 的使用
class Person {
protected age= 10; //修饰的属性和方法是受保护的,只能够在父类或者子类内部访问
private name = "张三"; // private 属性只能够 在类的内部 进行访问;
say() {
console.log("我的名字是" + this.name);
}
}
// 继承父类
class Children extends Person {
callPar() {
super.say(); //super 可以调用父类中的公共属性和公共方法,以及受保护的方法。但是不能访问受保护的属性
}
hello() {
// protected修饰的属性和方法是受保护的,只能够在父类或者子类中进行访问,不能在外部访问。 通过this进行访问
console.log("我今年" + this.age);
}
other() {
// 会报错的,返回的是 undefined, super是不能访问受保护的属性.可以通过this访问
console.log("我今年" + super.age);
}
}
var xm = new Children();
xm.callPar(); //我的名字是张三
xm.hello(); // 我今年10
xm.other(); //返回的是 undefined
// console.log(xm.age );// 报错 protected修饰的属性或者方法。可以在父类或者子类内部访问,不能够在外部访问。
static 静态方法的使用
class Person {
protected age= 10; //修饰的属性和方法是受保护的,只能够在父类或者子类内部访问。
private name = "张三"; // private 属性只能够 在类的内部 进行访问;不能够在外部访问。
say() {
console.log("我的名字是" + this.name);
}
}
// 继承父类
class Children extends Person {
static test() {
console.log("我是静态方法");
}
}
Children.test(); //静态方法 可以直接去调用 此时是不允许使用 this;this是使用在实例化当中
TypeScript类的修饰符 public private protected的详细讲解的更多相关文章
- 访问修饰符(public,private,protected,internal,sealed,abstract)
为了控件C#中的对象的访问权限,定义对象时可以在前面添加修饰符. 修饰符有五种:private(私有的),protected(受保护的),internal(程序集内部的),public(公开的),以及 ...
- 深入浅出OOP(五): C#访问修饰符(Public/Private/Protected/Internal/Sealed/Constants)
访问修饰符(或者叫访问控制符)是面向对象语言的特性之一,用于对类.类成员函数.类成员变量进行访问控制.同时,访问控制符也是语法保留关键字,用于封装组件. Public, Private, Protec ...
- C#访问修饰符(public,private,protected,internal,sealed,abstract)
为了控件C#中的对象的访问权限,定义对象时可以在前面添加修饰符. 修饰符有五种:private(私有的),protected(受保护的),internal(程序集内部的),public(公开的),以及 ...
- 2018/03/10 每日一学PHP 之 修饰符 public/private/protected
对于面向对象 修饰符的使用是我们最常用,也是很容易忽略的小细节. 对于编程来说,把握好每一个小细节,就能构造出漂亮,优雅的程序. public 使用最多的修饰符,公共方法,允许所有访问,就像一个公交车 ...
- 关于Java的权限修饰符(public,private,protected,默认friendly)
以前对访问修饰符总是模棱两可,让自己仔细解释也是经常说不很清楚.这次要彻底的搞清楚. 现在总结如下: 一.概括总结 各个访问修饰符对不同包及其子类,非子类的访问权限 Java访问权限修饰符包含四个:p ...
- 访问修饰符public,private,protected,以及不写(默认)时的区别?
private: 1.在当前类开发中,main方法之外可以直接借助名字使用,当前类的main方法中可以使用对象打点的方式直接使用成员. 2.在当前类之外,使用对象(或是类名,针对静态的)打点调用都是被 ...
- 访问修饰符 public,private,protected,以及不写(默认) 时的区别?
修饰符 当前类 同 包 子 类 其他包 public √ √ √ √ protecte d √ √ √ × default √ √ × × private √ × × × 类的成员不写访问修饰时默认为 ...
- 访问修饰符 public private protected default
- Java修饰符 public、protected、default、private
2.访问修饰符public,private,protected,以及不写(默认)时的区别?答: 修饰符 当前类 同 包 子 类 其他包 public √ √ √ √ protected √ √ √ × ...
- 12、类成员访问修饰符public/private/producted/readonly
1.private 类的私有成员 private 类的私有成员,只能在内部访问,在外部访问不到,无法被继承,我们可以将不需要被外部修改的定义为私有的 私有成员,只能在内部访问,在外部访问不到 priv ...
随机推荐
- centos8 新增ssh自定义端口与屏蔽默认22端口。
第一步:修改SSH配置文件(注意是sshd_config而不是ssh_config,多了个d) vim /etc/ssh/sshd_config找到"#Port 22",这一行直接 ...
- SyntaxError: Non-ASCII character #-*- coding:utf-8 -*-
执行python报错 /usr/bin/python2.7 /root/demo.py File "/root/demo.py", line 2 SyntaxError: Non- ...
- 从“概念”到“应用”,字节跳动基于 DataLeap 的 DataOps 实践
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 近日,火山引擎数智平台 VeDI Meetup「超话数据」在深圳举办,来自火山引擎的产品专家分享了字节跳动基于 D ...
- 火山引擎DataLeap数据血缘技术建设实践
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 DataLeap是火山引擎数智平台VeDI旗下的大数据研发治理套件产品,帮助用户快速完成数据集成.开发.运维.治理 ...
- Windows Tools | How To Install VS Microsoft C++ Build Tools on Windows
This can be used for installing anything that requires C++ compiler on Windows. Installation steps D ...
- C 与 C++ 区别
C 与 C++ 区别 本文介绍 C 与 C++ 之间重要的或者容易忽略的区别.尽管 C++ 几乎是 C 的超集,C/C++ 代码混用一般也没什么问题,但是了解 C/C++ 间比较重要区别可以避免碰到一 ...
- 六、java操作swift对象存储(resultful方式实现)
系列导航 一.swift对象存储环境搭建 二.swift添加存储策略 三.swift大对象--动态大对象 四.swift大对象--静态态大对象 五.java操作swift对象存储(官网样例) 六.ja ...
- 如何一键私有化部署 Laf ?
太长不看:Laf 上架了 Sealos 的模板市场,通过 Laf 应用模板即可一键部署! Laf 是一个完全开源的项目,除了使用公有云之外,还有大量的用户选择私有化部署 Laf.然而,私有化部署通常伴 ...
- 如何实现纯网页语音视频聊天和桌面分享?(附源码,PC版+手机版)
在网页里实现文字聊天是比较容易的,但若要实现视频聊天,就比较麻烦了.本文将实现一个纯网页版的视频聊天和桌面分享的Demo,可直接在浏览器中运行,不需要安装任何插件. 一. 主要功能及支持平台 1.本D ...
- spring注入的几种方式
本文为博主原创,未经允许不得转载: Spring注入有以下几种方式: 构造方法注入:通过构造方法实现依赖注入.在类的构造方法中使用@Autowired注解注入需要的依赖类. Setter方法注入:通过 ...