当前位置: 首页 > news >正文

优质的天津网站建设/seo关键词怎么选择

优质的天津网站建设,seo关键词怎么选择,凡客诚品v十商城,淘宝有做钓鱼网站的吗TypeScript 是一种面向对象的编程语言,它扩展了 JavaScript,为其添加了类型系统和其他一些特性。TypeScript 的 class 语法可以让开发者更加方便地使用面向对象的编程方式。本文将详细介绍 TypeScript 的 class 语法的操作和应用,并提供代码案…

TypeScript 是一种面向对象的编程语言,它扩展了 JavaScript,为其添加了类型系统和其他一些特性。TypeScript 的 class 语法可以让开发者更加方便地使用面向对象的编程方式。本文将详细介绍 TypeScript 的 class 语法的操作和应用,并提供代码案例分析。

1. class 的基本语法

在 TypeScript 中,class 关键字可以用来定义一个类。下面是一个简单的 class 定义示例:

class Person {name: string;age: number;constructor(name: string, age: number) {this.name = name;this.age = age;}sayHello() {console.log(`Hello, my name is ${this.name}, and I'm ${this.age} years old.`);}
}

在上面的示例中,我们定义了一个名为 Person 的类,它有两个属性 nameage,以及一个构造函数和一个方法 sayHello。构造函数用来初始化 nameage 属性,而 sayHello 方法用来输出一个问候语。

2. 继承和多态

在 TypeScript 中,我们可以使用 extends 关键字来实现类的继承。下面是一个继承示例:

class Student extends Person {grade: number;constructor(name: string, age: number, grade: number) {super(name, age);this.grade = grade;}sayHello() {console.log(`Hello, my name is ${this.name}, and I'm a student in grade ${this.grade}.`);}
}

在上面的示例中,我们定义了一个名为 Student 的类,它继承了 Person 类,并添加了一个 grade 属性和一个重写的 sayHello 方法。在构造函数中,我们使用 super 关键字来调用父类的构造函数。

通过继承,我们可以实现多态。在上面的示例中,Student 类重写了 sayHello 方法,这意味着当我们调用 sayHello 方法时,如果对象是 Student 类的实例,那么会调用 Student 类中的方法,否则会调用 Person 类中的方法。

3. 访问修饰符

在 TypeScript 中,我们可以使用访问修饰符来限制类的属性和方法的访问权限。TypeScript 支持三种访问修饰符:publicprivateprotected

  • public:默认的访问修饰符,表示属性和方法可以被任何人访问。
  • private:表示属性和方法只能在类内部访问。
  • protected:表示属性和方法可以在类内部和子类中访问。

下面是一个访问修饰符示例:

class Animal {private name: string;protected age: number;constructor(name: string, age: number) {this.name = name;this.age = age;}sayHello() {console.log(`Hello, my name is ${this.name}, and I'm ${this.age} years old.`);}
}class Cat extends Animal {constructor(name: string, age: number) {super(name, age);}sayHello() {console.log(`Hello, I'm a cat, and I'm ${this.age} years old.`);}
}const animal = new Animal('Tom', 3);
animal.sayHello(); // 输出:Hello, my name is Tom, and I'm 3 years old.
console.log(animal.name); // 编译错误:属性“name”为私有属性,只能在类“Animal”中访问。const cat = new Cat('Kitty', 2);
cat.sayHello(); // 输出:Hello, I'm a cat, and I'm 2 years old.
console.log(cat.age); // 输出:2

在上面的示例中,Animal 类中的 name 属性使用了 private 访问修饰符,因此只能在 Animal 类内部访问。而 age 属性使用了 protected 访问修饰符,因此可以在 Animal 类内部和 Cat 类中访问。

4. 抽象类和接口

在 TypeScript 中,我们可以使用抽象类和接口来定义类的规范。抽象类是一种不能被实例化的类,它只能被继承。接口则是一种定义了一组方法和属性的规范,它可以被类实现。下面是一个抽象类和接口示例:

abstract class Shape {abstract area(): number;
}interface Printable {print(): void;
}class Rectangle extends Shape implements Printable {width: number;height: number;constructor(width: number, height: number) {super();this.width = width;this.height = height;}area() {return this.width * this.height;}print() {console.log(`The area of the rectangle is ${this.area()}.`);}
}const rect = new Rectangle(3, 4);
rect.print(); // 输出:The area of the rectangle is 12.

在上面的示例中,我们定义了一个抽象类 Shape 和一个接口 PrintableShape 类中有一个抽象方法 area,它必须被子类实现。Rectangle 类继承了 Shape 类,并实现了 Printable 接口。Rectangle 类中实现了 area 方法和 print 方法。

5. 泛型

在 TypeScript 中,我们可以使用泛型来定义类、函数和接口。泛型可以让我们在编写代码时不必指定具体类型,而是在使用时再指定类型。下面是一个泛型类示例:

class Pair<T, U> {first: T;second: U;constructor(first: T, second: U) {this.first = first;this.second = second;}
}const pair = new Pair('hello', 123);
console.log(pair.first); // 输出:hello
console.log(pair.second); // 输出:123

在上面的示例中,我们定义了一个泛型类 Pair,它有两个类型参数 TU。在创建 Pair 对象时,我们可以指定 TU 的具体类型。

6. 总结

本文详细介绍了 TypeScript 的 class 语法的操作和应用,包括基本语法、继承和多态、访问修饰符、抽象类和接口以及泛型。通过这些示例,我们可以更好地理解和应用 TypeScript 的 class 语法。

相关文章:

Typescript的class语法[类]的操作和应用

TypeScript 是一种面向对象的编程语言&#xff0c;它扩展了 JavaScript&#xff0c;为其添加了类型系统和其他一些特性。TypeScript 的 class 语法可以让开发者更加方便地使用面向对象的编程方式。本文将详细介绍 TypeScript 的 class 语法的操作和应用&#xff0c;并提供代码案…...

OPENCV实现暴力特征匹配

# -*- coding:utf-8 -*- """ 作者:794919561 日期:2023/9/1 """ import cv2 import numpy as np# 读...

揭秘亚马逊Amazon测评,掌握细节和技巧,提升产品销量和评论数量

亚马逊是全球最大的跨境电商平台&#xff0c;拥有全球65个国家的几十个网站。对于跨境卖家来说&#xff0c;亚马逊是最值得选择的平台之一。 亚马逊的八大站点分别是美国、加拿大、墨西哥、欧洲、澳大利亚、日本、中东和巴西。 美国站点是全球最大的零售市场&#xff0c;拥有…...

Linux线程互斥

目录 一、线程不安全 1.线程不安全现象 2.线程不安全程序的特质 3.线程不安全程序的原因 二、线程互斥 1.基本概念 2.锁 &#xff08;1&#xff09;认识锁 &#xff08;2&#xff09;互斥锁的使用 &#xff08;3&#xff09;代码的改造 3.锁的本质 &#xff08;1&a…...

【仿写spring之ioc篇】三、检查是否实现了Aware接口并且执行对应的方法

Aware接口 Aware接口中只是设置了对应的set方法&#xff0c;目前只定义了三个Aware 以BeanNameAware为例 package com.ez4sterben.spring.ioc.factory.aware;/*** bean名字清楚** author ez4sterben* date 2023/08/31*/ public interface BeanNameAware {/*** 设置beanName* …...

C++ 异常处理

C 异常​(Exception)是指在程序运行时产生的特殊情况&#xff0c;例如&#xff0c;尝试除以零的操作。异常提供了一种转移程序控制权的方式&#xff0c;异常处理涉及到三个关键字&#xff1a;try、catch、throw。 throw: 当问题出现时&#xff0c;程序会抛出一个异常。这是通过…...

OJ练习第157题——单词拆分

单词拆分 力扣链接&#xff1a;139. 单词拆分 题目描述 给你一个字符串 s 和一个字符串列表 wordDict 作为字典。请你判断是否可以利用字典中出现的单词拼接出 s 。 注意&#xff1a;不要求字典中出现的单词全部都使用&#xff0c;并且字典中的单词可以重复使用。 示例 …...

若依tab-content面板失效、使用load的解决方法(附详细步骤)

【版权所有&#xff0c;文章允许转载&#xff0c;但须以链接方式注明源地址&#xff0c;否则追究法律责任】【创作不易&#xff0c;点个赞就是对我最大的支持】 前言 仅作为学习笔记&#xff0c;供大家参考 总结的不错的话&#xff0c;记得点赞收藏关注哦&#xff01; 思路&…...

2023年03月 C/C++(五级)真题解析#中国电子学会#全国青少年软件编程等级考试

第1题&#xff1a;拼点游戏 C和S两位同学一起玩拼点游戏。有一堆白色卡牌和一堆蓝色卡牌&#xff0c;每张卡牌上写了一个整数点数。C随机抽取n张白色卡牌&#xff0c;S随机抽取n张蓝色卡牌&#xff0c;他们进行n回合拼点&#xff0c;每次两人各出一张卡牌&#xff0c;点数大者获…...

Android安卓实战项目(12)—关于身体分析,BMI计算,喝水提醒,食物卡路里计算APP【支持中英文切换】生活助手类APP(源码在文末)

Android安卓实战项目&#xff08;12&#xff09;—关于身体分析&#xff0c;BMI计算&#xff0c;喝水提醒&#xff0c;食物卡路里计算APP【支持中英文切换】生活助手类APP&#xff08;源码在文末&#x1f415;&#x1f415;&#x1f415;&#xff09; 一.项目运行介绍 B站演示…...

Hadoop 3.2.4 集群搭建详细图文教程

目录 一、集群简介 二、Hadoop 集群部署方式 三、集群安装 3.1 集群角色规划 3.2 服务器基础环境准备 3.2.1 环境初始化 3.2.2 ssh 免密登录&#xff08;在 hadoop01 上执行&#xff09; 3.2.3 各个节点上安装 JDK 1.8 环境 3.3 安装 Hadoop 3.4 Hadoop 安装包目…...

STL的学习之一

1&#xff09;STL扫盲 1&#xff09;C标准库和标准模板库是不一样的 2&#xff09;标准模板库是用泛型编程方式编写的函数或者类库; 3) SGI STL linux一般用&#xff0c;P.J.Plauger STL,visual2017 windows用 STL六大组件 : 容器&#xff0c;迭代器 STL 算法(说白了就是函数…...

如何使用Python进行数据科学实验?

使用Python进行数据科学实验通常需要以下步骤&#xff1a; 以上仅为使用Python进行数据科学实验的基本步骤&#xff0c;具体实验过程会根据具体问题和数据集的特点而有所不同。可以进一步学习和探索相关的数据科学和机器学习技术&#xff0c;以提高实验的效果和表现。 安装Pyt…...

华为数通方向HCIP-DataCom H12-821题库(拖拽题,知识点总结)

以下是我在现有题库中整理的需要重点关注的考点内容,如有遗漏小伙伴可以留言补充。...

第三课:C++实现PDF去水印

PDF去水印是一项非常复杂的任务,需要一定的计算机图形学知识和技术,也需要使用到一些专业的工具库。以下是一种可能的实现方法: 首先,需要将PDF文件解析成一系列图形元素,包括文字、矢量图形等。可以使用开源库Poppler或MuPDF来解析PDF文件。 接下来,需要判断PDF文件是否…...

实现Android分布式协同办公:将待办事件App与本地Web服务结合

AndServer AndServer 是 Android 平台的 Web Server 和 Web Framework,它基于编译时注解提供了类似 SpringMVC 的注解和功能。 Github :https://github.com/yanzhenjie/AndServer使用文档:https://yanzhenjie.com/AndServer/业务需求 实现待办事件APP本地启动Web服务,将本…...

VMware12.1.1安装Centos7

VMware12.1.1安装Centos7 1、下载相关软件 1.1 Centos7下载 官方下载链接&#xff1a; http://isoredirect.centos.org/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-1511.iso 1.2 VMware Workstation下载 VMware Workstation 12.1.1官方原版下载&#xff1a; https://dow…...

bazel构建原理

调度模型 传统构建系统有很多是基于任务的&#xff0c;例如 Ant&#xff0c;Maven&#xff0c;Gradle。用户可以自定义"任务"(Task&#xff09;&#xff0c;例如执行一段 shell 脚本。用户配置它们的依赖关系&#xff0c;构建系统则按照顺序调度。 基于 Task 的调度…...

matlab 点云的二进制形状描述子

目录 一、功能概述1、算法概述2、主要函数3、参考文献二、代码示例三、结果展示四、参数解析输入参数名称-值对应参数输出参数五、参考链接本文由CSDN点云侠原创,...

MongoDB实验——在Java应用程序中操作 MongoDB 数据

在Java应用程序中操作 MongoDB 数据 1. 启动MongoDB Shell 2. 切换到admin数据库&#xff0c;使用root账户 3.开启Eclipse&#xff0c;创建Java Project项目&#xff0c;命名为MongoJava File --> New --> Java Project 4.在MongoJava项目下新建包&#xff0c;包名为mo…...

java+springboot+mysql校园跑腿管理系统

项目介绍&#xff1a; 使用javaspringbootmysql开发的校园跑腿管理系统&#xff0c;系统包含超级管理员&#xff0c;系统管理员、用户角色&#xff0c;功能如下&#xff1a; 超级管理员&#xff1a;管理员管理&#xff1b;用户管理&#xff08;充值&#xff09;&#xff1b;任…...

ubuntu20.04 server 安装后磁盘空间只有一半的处理

这里扩展&#xff1a;/dev/mapper/ubuntu–vg-ubuntu–lv rootbook:/data# df -h Filesystem Size Used Avail Use% Mounted on udev 3.9G 0 3.9G 0% /dev tmpfs 795M 1.2M 79…...

〔017〕Stable Diffusion 之 常用模型推荐 篇

✨ 目录 🎈 模型网站🎈 仿真系列🎈 国风系列🎈 卡通动漫系列🎈 3D系列🎈 一些好用的lora模型🎈 模型网站 由于现在大模型超级多,导致每种画风的模型太多,那么如何选择最好最适合的模型,成了很多人头疼的问题由于用的大部分都是1.5的模型,所以优先下载 safete…...

多目标应用:基于多目标人工蜂鸟算法(MOAHA)的微电网多目标优化调度MATLAB

一、微网系统运行优化模型 参考文献&#xff1a; [1]李兴莘,张靖,何宇,等.基于改进粒子群算法的微电网多目标优化调度[J].电力科学与工程, 2021, 37(3):7 二、多目标人工蜂鸟算法MOAHA 多目标人工蜂鸟算法&#xff08;multi-objective artificial hummingbird algorithm&…...

【HTML5】HTML5 特性

HTML5 特性 1. 语义化标签 <header>&#xff1a;表示网页或某个区域的页眉部分&#xff0c;通常包含网站的标志、导航菜单等内容。<nav>&#xff1a;表示导航区域&#xff0c;用于包含网站的主要导航链接。<main>&#xff1a;表示网页的主要内容区域&#…...

【FreeRTOS】互斥量的使用与逐步实现

在FreeRTOS中&#xff0c;互斥量是一种用于保护共享资源的同步机制。它通过二进制信号量的方式&#xff0c;确保在任意时刻只有一个任务可以获取互斥量并访问共享资源&#xff0c;其他任务将被阻塞。使用互斥量的基本步骤包括创建互斥量、获取互斥量、访问共享资源和释放互斥量…...

Spring-Cloud-Openfeign如何传递用户信息?

用户信息传递 微服务系统中&#xff0c;前端会携带登录生成的token访问后端接口&#xff0c;请求会首先到达网关&#xff0c;网关一般会做token解析&#xff0c;然后把解析出来的用户ID放到http的请求头中继续传递给后端的微服务&#xff0c;微服务中会有拦截器来做用户信息的…...

OpenCV(十一):图像仿射变换

目录 1.图像仿射变换介绍 仿射变换&#xff1a; 仿射变换矩阵&#xff1a; 仿射变换公式&#xff1a; 2.仿射变换函数 仿射变换函数&#xff1a;warpAffine() 图像旋转&#xff1a;getRotationMatrix2D() 计算仿射变换矩阵&#xff1a;getAffineTransform() 3.demo 1.…...

多路波形发生器的控制

本次波形发生器&#xff0c;主要使用运算放大器、NE555以及一些其他的电阻电容器件来实现。整体电路图如下所示&#xff1a; 产生的三角波如下&#xff1a; 正弦波如下 方波如下&#xff1a; 运算放大器&#xff08;Operational Amplifier&#xff0c;简称OP-AMP&#xff09;是…...

[C/C++]天天酷跑超详细教程-中篇

个人主页&#xff1a;北海 &#x1f390;CSDN新晋作者 &#x1f389;欢迎 &#x1f44d;点赞✍评论⭐收藏✨收录专栏&#xff1a;C/C&#x1f91d;希望作者的文章能对你有所帮助&#xff0c;有不足的地方请在评论区留言指正&#xff0c;大家一起学习交流&#xff01;&#x1f9…...