学习ts(五)类

news2024/11/15 13:43:22

定义

是面向对象程序设计(OOP)实现信息封装的基础
类是一种用户定义的引用数据类型,也称类类型
JavaScriptclass,虽然本质是构造函数,但是使用起来已经方便了许多,js中没有加入修饰符和抽象类等特性
tsclass支持面向对象的所有特性,比如类,接口等

使用

1、基础使用

基础内容:属性、方法、构造函数(类实例化时调用,可以为类的对象分配内存)

class Car{
	engine:string;
	// 构造函数
	constructor(engine:string){
		this.engine = engine
	}

	//方法
	disp():void{
		console.log(this.engine)
	}
}

继承

Dog是一个 派生类,它派生自 Animal 基类,派生类通常被称作子类,基类通常被称作 超类

Dog类继承了Animal类,因此实例dog也能够使用Animalmove方法

class Animal {
    move(distanceInMeters: number = 0): void {
        console.log(`animal moved ${distanceInMeters}m.`)
    }
}

class Dog extends Animal {
    bark(): void {
        console.log('Woof! Woof!')
    }
}

const dog = new Dog()
dog.move(10)
dog.bark()

方法重写

在子类中定义和父类相同名字的方法即可实现方法的重写,可以通过super调用父类的方法

class PrintA {
    printData(): void {
        console.log('父类的print方法')
    }
}

class PrintB extends PrintA {
    printData(): void {
        console.log('子类的print方法')
        super.printData() // 调用父类的方法
    }
}

let printTest = new PrintB()

printTest.printData()

修饰符

  • 公共public:可以自由的访问类程序里定义的成员,不加修饰符默认是public

  • 受保护 protect:除了在该类的内部可以访问,还可以在子类中仍然可以访问

    • 和私有修饰符很相似,实例对象同样不能访问受保护的属性,但是在子类中仍然可以访问
      在这里插入图片描述
  • 私有private:只能够在该类的内部进行访问

    • 只能够在该类的内部进行访问,实例对象和子类并不能够访问
      在这里插入图片描述
  • 只读修饰符 readonly

    • 只读属性必须在声明时或构造函数里被初始化,只能修饰属性在这里插入图片描述

静态属性

这些属性存在于类本身上面而不是类的实例上,通过static进行定义,访问这些属性需要通过 类型.静态属性 的这种形式访问
静态属性能被静态方法访问,非静态方法无法访问静态属性和方法
在这里插入图片描述

get set

在这里插入图片描述

抽象类

使用abstract关键字定义的类 不能被实例化 可以被继承,继承的类需要实现抽象类的方法
使用abstract定义的属性为抽象属性
使用abstract定义的方法为抽象方法
在这里插入图片描述

abstract class PrintA {
    aName: string;
    constructor(param?: string) {
        this.aName = param
    }
    abstract getName() //抽象方法 只是声明,不能实现

}

class PrintB extends PrintA {

    constructor(name: string) {
        super()
        this.setName(name)
    }
    getName() {
        console.log(this.aName)
    }
    setName(name: string) {
        this.aName = name
    }
}
let test = new PrintB('123')
test.getName()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/907392.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

飞机打方块(五)游戏音乐

一、新建节点 1.在Start场景中新建Music节点,绑定canvas 2.在Game场景中新建Music节点 3.新建节点 4.新建Music脚本,绑定Canvas Music.ts const { ccclass, property } cc._decorator;ccclass export default class NewClass extends cc.Component {p…

【静态时序分析STA(邸志雄)/2023年8月20日】

内容:TCL语言(PT),静态时序分析基础(工艺库、STA环境、时序检查方法、多时钟等特殊时序分析),SDC(tcl设计约束) CTS:clock tree systhesis Tsu建立时间/Th保…

实验四 SD 卡启动盘制作

【实验目的】 掌握 SD 卡启动盘的制作方法 【实验环境】 FS4412 实验平台 【实验步骤】 烧写工具默认从 0 扇区开始烧写,这里我们自己在 uboot 之前放一个512 字节的空镜像 将资料中“u-boot 镜像”中的 u-boot-fs4412.bin 拷贝到 ubuntu 的家目录下 在终端输…

升级家庭网络!Wi-Fi 7让你流畅体验网速飞快的3大原因

与我们的智能手机和笔记本电脑不同,即使是最好的Wi-Fi路由器也是我们家中最有可能被视为理所当然的技术——也就是说,直到出现问题。然而,一旦Wi-Fi 7成为主流,这种情况可能很快就会改变。 虽然从Wi-Fi 6到Wi-Fi 6E的飞跃引入了更快的6 GHz频段,但这还不足以让大多数人升…

善于打仗的人,没有特别大的名气和勇功

善于打仗的人,没有特别大的勇功 【安志强趣讲《孙子兵法》第15讲】 【原文】 见胜不过众人之所知,非善之善者也;战胜而天下曰善,非善之善者也。 【趣讲白话】 预判胜负没有超出常人的见识,算不上高明中最高明的&#x…

抓住WhatsApp 营销风口,做全球电商领跑者

您的电子邮件营销活动效果是否一直不理想?不妨考虑 WhatsApp营销,一种实时通讯营销,可帮助企业接触更广泛的受众,与客户建立个人联系并最终增加销售额。还可以再借助具有强大功能的全渠道客户服务工具,例如SaleSmartly…

初出茅庐的小李博客之STM32CubeMx配置USART1增加打印功能

1.创建基于STM32F03C8T6工程 1.1配置时钟 选择外部高速时钟源HSE 1.2配置系统时钟树使其达到最大时钟72MHz(最大系统时钟) 配置串口1 生成代码 具体工程配置可参考上几篇博客,地址 初出茅庐的小李博客之STM32CubeMx驱动WS2812B实现幻彩&a…

小红书直播浪潮下,怎样找到正确的入局方向?

在今年举办的“电商直播时尚合伙人大会”上,小红书公布了一组数据:2022年小红书电商直播主播数量同比增长337%,平台直播场次同比增长了214%。 相较于其他平台,小红书直播起步较晚,今年凭借董洁、章小蕙等IP“顶流”&am…

【附源码】六个Python表白小代码,送给心爱的她,让她高兴一整天~

话说明天就是七夕了,买礼物了吗? 什么?居然还没买礼物,那这个代码正好送给你,六个Python爱心表白代码,让她高兴一整天! 话不多说,咱直接上代码! 1、紫色爱心 先看效果…

K8s学习笔记4

场景: 项目研发部门最近要进行应用运行基础环境迁移,需要由原先的虚拟机环境迁移到K8s集群环境中,以便应对开发快速部署和快速测试的需要,因此,需要准备一套可以用于开发需求的K8s集群,但是对于仅有容器基…

YOLO目标检测——MNIST手写数字数据集下载分享

MNIST手写数字图像数据集是一个经典的用于图像分类任务的数据集,其中包含了大量的手写数字图像样本 数据集点击下载: MNIST手写数字数据集7000张图片.rar

使用Xshell7控制多台服务同时安装ZK最新版集群服务

一: 环境准备: 主机名称 主机IP 节点 (集群内通讯端口|选举leader|cline端提供服务)端口 docker0 192.168.1.100 node-0 2888 | 3888 | 2181 docker1 192.168.1.101 node-1 2888 | 388…

元核云私募双录助力私募基金业务高效合规

近年来,私募基金监管政策不断收紧,今年7月发布的《私募投资基金监督管理条例》更是把私募投资基金业务活动纳入法治化、规范化轨道进行监管。 作为保障私募基金业务透明合规的重要手段,“双录”一直是私募流程中非常重要的一环,多…

图像降采样的计算原理:F.interpolate INTER_AREA

一、F.interpolate——数组采样操作 torch.nn.functional.interpolate(input, size=None, scale_factor=None, mode=nearest, align_corners=None, recompute_scale_factor=None) 功能:利用插值方法,对输入的张量数组进行上\下采样操作,换句话说就是科学合理地改变数组的尺…

华为云开发工具CodeArts IDE for C/C++ 开发使用指南

简介 CodeArts IDE是一个集成开发环境(IDE),它提供了开发语言和调试服务。本文主要介绍CodeArts IDE for C/C的基本功能。 1.下载安装 CodeArts IDE for C/C 已开放公测,下载获取免费体验 2.新建C/C工程 CodeArts IDE for C/…

春秋云境:CVE-2022-0543(Redis 沙盒逃逸漏洞)

目录 一、i春秋题目 二、CVE-2022-0543:(redis沙盒逃逸) 漏洞介绍: 漏洞复现: 一、i春秋题目 靶标介绍: Redis 存在代码注入漏洞,攻击者可利用该漏洞远程执行代码。 进入题目:…

数字孪生技术应用:智能制造、城市规划与更多

数字孪生可以用在哪些场景下?这个问题引发了无数创新思考和应用探索。随着科技的不断进步,数字孪生技术正逐渐展现出其广泛的应用前景,不仅在工业制造,还在城市规划、农业等多个领域呈现出独特的价值。 在工业制造领域&#xff0…

jenkins的安装和配置(flask结合jenkins半自动化部署流程)

jenkins在虚拟机中安装 1.1 背景介绍 Jenkins 是一款流行的开源持续集成(Continuous Integration)工具,广泛用于项目开发,具有自动化构建、测试和部署等功能。 Jenkins官网: Jenkins Jenkins 特征 开源的Java语言开发…

无涯教程-PHP - 静态变量函数

静态变量 静态变量在函数退出时值不会丢失,您只需将关键字STATIC放在变量名称的前面,即可将变量声明为静态变量。 <?phpfunction keep_track() {STATIC $count0;$count;print $count;print "<br />";}keep_track();keep_track();keep_track(); ?> 这…

openstack安装使用(Yoga版本)

演示具体只体现centos配置&#xff0c;至于Ubuntu和SUSE&#xff0c;请移步官方文档 安装指南 官方网址&#xff1a;https://docs.openstack.org/install-guide/common/conventions.html $ command #任何用户&#xff08;包括root用户&#xff09;都可以运行以提示符为前缀的…