四、使用类实现功能
使用类实现功能
ts中类的继承
ES6中class类中,属性分为:实例上的属性,原型上的方法;也可以叫做:class的属性,class的方法。
类的继承叫法:父类=>子类,基类=>派生类;它们本质上是一样的。
super指向父类的构造函数
继承简单功能:扩展现有的类,通过抽离父类的方式来实现子类的复用。(实现公共方法的抽离,让子类实现复用)。
类上注解实例上的属性:
class Greeter {greeting: number; //仅当类被实例化的时候才会被初始化的属性constructor(message: number) {this.greeting = message;}greet(a: number): string {return "Hello, " + this.greeting;}
}
class Greeter1 extends Greeter {constructor() {super(123);}greet(a: number): string {return "Hello, " + this.greeting;}
}
ts中类中的public、private、protected、readonly修饰符
| 修饰符名称 | 使用范围 |
|---|---|
| public | 自身、子类、实例 |
| private | 自身 |
| protected | 自身和子类 |
| readonly | 只读属性必须在声明时或构造函数里被初始化。 |
readonly只会用在属性签名或者索引签名(签名是数字)前面。
简写问题:
类中属性不写修饰符,默认被public修饰。
class Person {public name: string;constructor(theName: string) {this.name = theName;};sayName(){console.log(this.name, 2);}
}
// 简写
class Person1 {constructor(public name: string) {this.name = name;};sayName(){console.log(this.name, 2);}
}
存取器与静态属性
-
存取器:TypeScript支持通过getters/setters来截取对对象成员的访问。
-
静态属性:创建类的静态成员,这些属性存在于类本身上面而不是类的实例上。
let passcode = "secret passcode";class Employee {private _fullName: string;get fullName(): string {return this._fullName;}set fullName(newName: string) {if (passcode && passcode == "secret passcode") {this._fullName = newName;}else {console.log("Error: Unauthorized update of employee!");}}static a = 123;static b (a:number, b: number): number {return a + b ;}
}let employee = new Employee();
employee.fullName = "Bob Smith";
if (employee.fullName) {alert(employee.fullName);
}
抽象类abstract
抽象类做为其它派生类的基类使用。 它们一般不会直接被实例化。
存在抽象类、抽象方法
抽象类中有抽象方法,父类中抽象方法不需要实现(定义),而继承的子类必须实现它。
abstract class Animal {abstract makeSound(): void;move(): void {console.log('roaming the earch...');}
}
相关文章:
四、使用类实现功能
使用类实现功能 ts中类的继承 ES6中class类中,属性分为:实例上的属性,原型上的方法;也可以叫做:class的属性,class的方法。 类的继承叫法:父类>子类,基类>派生类;…...
Java多线程不安全的例子
目录 1. 可见性不安全例子 2. 原子性不安全例子 3. 有序性不安全例子 1. 可见性不安全例子 可见性:一个线程对共享变量的修改,另外一个线程不能够立刻看到。 如果多线程对共享数据进行访问而不采取同步操作的话,那么操作的结果是不一致…...
vivo X Flip会是高端手机市场的又一折叠屏爆款吗?
据多个平台消息,vivo即将推出小折叠屏手机X Flip。据了解,vivo X Flip将采用轻盈便携的竖向折叠布局,以及非常受女性消费者喜爱的结构设计。那么,vivo X Flip会是vivo折叠屏的又一个爆款吗? 一、vivo X Flip小折叠屏手…...
MySQL中MVCC如何解决不可重复读以及幻读?
了解MVCC之前,我们首先需要了解以下两个概念:一致性非锁定读和锁定读,了解这两个概念之后我们在逐步分析MVCC。 一致性非锁定读和锁定读 一致性非锁定读(快照读) 对于 一致性非锁定读的实现,通常做法是加一个版本号或者时间戳字…...
设计模式第八讲:观察者模式和中介者模式详解
一. 观察者模式 1. 背景 在现实世界中,许多对象并不是独立存在的,其中一个对象的行为发生改变可能会导致一个或者多个其他对象的行为也发生改变。例如,某种商品的物价上涨时会导致部分商家高兴,而消费者伤心;还有&…...
关于 mac 本地配置域名能 ping 通,但是浏览器不能访问的问题(而其他电脑操作可访问)
关于 mac 本地配置域名能 ping 通,但是浏览器不能访问的问题(而其他电脑操作可访问)1. 配置域名的方式1.1 sudo vim /etc/hosts1.2 浏览器插件 LiveHosts2. 问题描述3. 解决问题方法3.1 尝试方法1—确保代理都关闭3.2 尝试方法2—确保域名能p…...
【代码随想录二刷】Day23-二叉树-C++
代码随想录二刷Day23 今日任务 669.修剪二叉搜索树 108.将有序数组转换为二叉搜索树 538.把二叉搜索树转换为累加树 语言:C 669. 修剪二叉搜索树 链接:https://leetcode.cn/problems/trim-a-binary-search-tree/ 递归 class Solution { public:Tree…...
Linux GPIO 开发指南
文章目录Linux GPIO 开发指南1 概述1.1 编写目的1.2 适用范围1.3 相关人员2 模块介绍2.1 模块功能介绍2.2 相关术语介绍2.3 总体框架2.4 state/pinmux/pinconfig2.5 源码结构介绍3 模块配置3.1 kernel menuconfig 配置3.2 device tree 源码结构和路径3.2.1 device tree 对 gpio…...
记一次后端生成Zip文件通过浏览器下载后文件损坏,无法打开,不可预知的末端错误,下载后文件比源文件增大
记一次后端生成Zip文件问题前言问题出现排查一、流没有关好二、写入了空白字节三、没有flush定位环节一、生成二、通过SwaggerUI、PostMan进行下载三、结论解决方法前言 在项目上线前夕,临时添加了个数据导出的接口,需求是导出压缩包,选择了项…...
python中savgol_filter的详细解释
目录savgol_filter简介savgol_filter原理参数window_length对平滑的效果参数polyorder的平滑效果savgol_filter简介 Savitzky-Golay滤波器最初由Savitzky和Golay于1964年提出,是光谱预处理中常用滤波方法,它的核心思想是对一定长度窗口内的数据点进行k阶…...
C语言--指针进阶1
目录回顾字符指针指针数组数组指针&数组名和数组名的区别数组指针的使用指针作为形参练习数组参数、指针参数一维数组传参二维数组传参一级指针传参二级指针传参回顾 指针的内容,我们在初级阶段已经有所涉及了,我们先来复习一下 指针就是个变量&am…...
ssh的使用
Halo,这里是Ppeua。平时主要更新C语言,C,数据结构算法......感兴趣就关注我吧!你定不会失望。 🌈个人主页:主页链接 🌈算法专栏:专栏链接 我会一直往里填充内容哒! &…...
Apache Hadoop生态-目录汇总-持续更新
目录 1:系统服务分布图 3台分布式架构 1台单机架构 服务版本介绍 2:服务目录 存储相关 数据采集 任务调度 即席查询 数据可视化 集群监控 元数据管理 用户认证 权限管理 第三方windows客户端 1:系统服务分布图 3台分布式架构…...
「JVM 编译后话」编译器优化技术
后端编译(即时编译、提前编译)的目标时将字节码翻译成本地机器码,而难点是输出优化质量较高的机器码; 文章目录1. 优化技术概览2. 方法内联(Inlining)3. 逃逸分析(Escape Analysis)4…...
【python学习笔记】:输出与输入
01 输出方式 表达式语句、print()函数和使用文件对象的write()方法。 02 输出形式 格式化输出str.format()函数、转成字符串可以使用repr()或str()函数来实现。 (1)repr():产生一个解释器易读的表达形式,便于字符串的拼接。 例:输出平方与…...
汽车电子社区交流宣传
http://t.csdn.cn/VSLO0http://t.csdn.cn/VSLO0 当今的汽车行业已经进入了数字化时代,汽车电子软件的开发变得越来越重要。在这个领域,开发者们需要应对各种挑战,包括复杂的硬件和软件交互、高效的嵌入式编程和安全性要求。为了帮助汽车电子…...
String、StringBuilder 和 StringBuffer 详解
碎碎念 这是一道老生常谈的问题了,字符串是不仅是 Java 中非常重要的一个对象,它在其他语言中也存在。比如 C、Visual Basic、C# 等。字符串使用 String 来表示,字符串一旦被创建出来就不会被修改,当你想修改StringBuffer 或者是 …...
windows服务器上传文件解决方案
1.说明 1.如果上传到linux系统,通常使用ftp相关技术,配合windows端的ftp客户端工具比如FileZilla等进行大文件的上传工作。 2.同理windows服务器也可以开启ftp服务用来传输大文件。 3.本文介绍偷懒方式(常规是开启windows的ftp服务࿰…...
Android Studio翻译插件推介(Translation)
前言 Android Studio翻译插件适合英语水平不太好的程序员(比如:我),最常用的翻译插件Translation和AndroidLocalize,本文主要讲解Translation,亲测可用。 先看看效果:这里是Android的API,任意选…...
DNS,DNS污染劫持,DNS加密
1. DNS(Domain Name System)DNS(Domain Name System), 也叫网域名称系统,是互联网的一项服务。它实质上是一个 域名 和 IP 相互映射的分布式数据库.DNS(Domain Name Server,域名服务…...
Appium自动化测试卡在iOS签名?手把手教你搞定Provisioning Profile与entitlements不匹配的坑
Appium自动化测试卡在iOS签名?手把手教你搞定Provisioning Profile与entitlements不匹配的坑 当你兴致勃勃地准备开始iOS自动化测试时,突然遇到"Provisioning profile doesnt match the entitlements files value for the get-task-allow entitleme…...
STM32万能红外遥控器开发实战
1. 项目概述这个基于STM32的万能红外遥控器项目,是我在智能家居领域的一次实战尝试。作为一名嵌入式开发者,我经常遇到家里遥控器太多、操作繁琐的问题。市面上的智能遥控器要么功能单一,要么价格昂贵,于是决定自己动手开发一款多…...
终极GRUB配置指南:让build-linux系统成功启动的7个关键步骤
终极GRUB配置指南:让build-linux系统成功启动的7个关键步骤 【免费下载链接】build-linux A short tutorial about building Linux based operating systems. 项目地址: https://gitcode.com/gh_mirrors/bu/build-linux build-linux项目是一个构建Linux操作系…...
OpenClaw+Phi-3-vision-128k-instruct:电商商品截图自动比价系统
OpenClawPhi-3-vision-128k-instruct:电商商品截图自动比价系统 1. 为什么需要自动化比价系统 作为一个经常网购的技术爱好者,我发现自己花在比价上的时间越来越多。每次看到心仪的商品,都要手动打开多个电商平台,截图保存价格信…...
OpenClaw技能组合拳:Qwen3.5-9B实现多步骤跨境电商运营
OpenClaw技能组合拳:Qwen3.5-9B实现多步骤跨境电商运营 1. 为什么选择OpenClaw做跨境电商自动化? 去年夏天,我接手了一个跨境电商副业项目。每天需要手动处理商品信息抓取、多语言翻译、定价调整和库存同步,很快发现人工操作不仅…...
观察者同步才是物理学真正的基石:局部重叠如何自然衍生出全部现实架构
物理学三大支柱——量子理论、广义相对论、标准模型——各自以惊人的精度描述着世界,却始终无法拼成一张完整的图景。为什么必须是31维洛伦兹时空?为什么规范群偏偏是SU(3)SU(2)U(1)/Z₆?为什么粒子谱、质量层级、测量问题和量子引力兼容性始…...
Skills 系统——让 AI 秒变专家
1. 技能的本质:提示词工程 在 nanobot 中,一个技能就是一个文件夹,核心是里面的 SKILL.md。 nanobot内置的skills放在project_path/nanobot/skills目录下,用户自定义的skills放在workspace/.nanobot/skills目录下 以 weather 技…...
Scratch二次开发实战:如何按需“阉割”菜单栏功能?从关闭语言切换、主题到隐藏教程按钮
Scratch教学环境定制指南:精准控制菜单栏功能的艺术 1. 为什么需要定制Scratch界面? 在少儿编程教育领域,Scratch作为全球最受欢迎的图形化编程工具之一,其默认界面设计面向的是广泛年龄段的国际用户。然而在实际教学场景中&#…...
Boss-Key老板键:一键隐藏窗口的终极隐私保护神器
Boss-Key老板键:一键隐藏窗口的终极隐私保护神器 【免费下载链接】Boss-Key 老板来了?快用Boss-Key老板键一键隐藏静音当前窗口!上班摸鱼必备神器 项目地址: https://gitcode.com/gh_mirrors/bo/Boss-Key 你是否曾经历过这样的尴尬时刻…...
TVA在汽车零部件焊接点检测中的实操启示录(3)
TVA系统在汽车零部件焊接点检测的落地,并非简单的“设备安装调试”,而是一个涉及流程优化、人员适配、技术衔接的系统工程。不少企业技术主管因忽视落地全流程管控,出现“系统安装后无法正常运行”“员工不会操作”“检测流程与生产流程脱节”…...
