首页 > 其他分享 >TS — 类(详解)

TS — 类(详解)

时间:2024-04-15 16:23:18浏览次数:21  
标签:name age number TS Person 详解 class string

在 TypeScript 中,类是面向对象编程的基本概念之一,它允许你使用面向对象的方式组织和管理代码。

1. 类的基本定义

在 TypeScript 中,类通过 class 关键字来定义。

class Person {
    name: string;
    age: number;

    constructor(name: string, age: number) {
        this.name = name;
        this.age = age;
    }

    greet() {
        console.log(`Hello, my name is ${this.name} and I'm ${this.age} years old.`);
    }
}
//定义了一个 Person 类,它有 nameage 两个属性,以及一个 greet 方法。

2. 类的实例化

要创建类的实例,可以使用 new 关键字。

let person1 = new Person("Alice", 30);
person1.greet(); // 输出: Hello, my name is Alice and I'm 30 years old.

3. 构造函数

类可以有一个特殊的方法叫做构造函数(constructor),它会在实例化类时被调用。

class Person {
    constructor(public name: string, public age: number) {
        // constructor 可以直接定义属性
    }
}

//我们使用了 TypeScript 的简化语法,将属性的声明和赋值合并到了构造函数的参数列表中。

4. 访问修饰符

TypeScript 支持公共、私有和受保护等访问修饰符来控制类成员的可访问性。

  • public:默认修饰符,可以在类的内部和外部访问。
  • private:只能在类的内部访问。
  • protected:可以在类的内部和派生类中访问。
class Person {
    private id: number; // 私有属性

    constructor(public name: string, private age: number) {
        this.id = Math.random(); // 只能在类的内部访问
    }
}

5. 继承

类可以通过 extends 关键字实现继承。

class Student extends Person {
    constructor(name: string, age: number, public grade: string) {
        super(name, age); // 调用父类的构造函数
    }

    study() {
        console.log(`${this.name} is studying in grade ${this.grade}.`);
    }
}

//Student 类继承了 Person 类,使用 super 关键字调用了父类的构造函数。

6. 方法重写

子类可以重写父类中的方法。

class Student extends Person {
    greet() {
        console.log(`Hello, my name is ${this.name}, I'm ${this.age} years old, and I'm a student.`);
    }
}

//Student 类重写了 Person 类中的 greet 方法。

7. 抽象类

抽象类是不能被实例化的类,通常用作其他类的基类。

abstract class Animal {
    abstract makeSound(): void; // 抽象方法,子类必须实现
}

8. 静态属性和方法

类中的静态属性和方法属于类本身,而不是类的实例。

class MathUtil {
    static PI: number = 3.14;

    static circleArea(radius: number): number {
        return this.PI * radius * radius;
    }
}

 

标签:name,age,number,TS,Person,详解,class,string
From: https://www.cnblogs.com/qinlinkun/p/18136231

相关文章

  • ODI(境外投资备案)作用、类别和申请流程详解
     中国企业越来越多地选择在境外进行投资,而国家相关部门也出台了多项政策以规范这一行为。在进行海外投资前,企业必须在政策指导下进行合法操作并办理相应手续,其中ODI(境外投资备案)是其中一种最常见的方式之一。 以下是对ODI的介绍、类别以及申请流程的详细指南:目录:ODI(境外......
  • java实现的微服务架构_详解Java 微服务架构
    java实现的微服务架构_详解Java微服务架构一、传统的整体式架构传统的整体式架构都是模块化的设计逻辑,如展示(Views)、应用程序逻辑(Controller)、业务逻辑(Service)和数据访问对象(Dao),程序在编写完成后被打包部署为一个具体的应用。如图所示:系统的水平扩展如果要对系统......
  • echarts使用与踩坑
    0.踩坑点1.当图表不显示在页面(display:none)执行resize可能会导致图表样式混乱1.官网示例import*asechartsfrom'echarts';//基于准备好的dom,初始化echarts实例//注意:这里的main元素要有宽度才可以,不然页面上是看不到渲染的图标的,但实际上echarts已经初始化......
  • python secrets 模块
    secrets说明secrets模块用于生成高度加密的随机数,适于管理密码、账户验证、安全凭据及机密数据。生成随机数secrets模块是操作系统提供的最安全地随机性来源。choice(sequence)从非空序列中返回一个安全的随机元素。importsecrets#假设我们有一个元素列表elements=......
  • .NET Emit 入门教程:第六部分:IL 指令:8:详解 ILGenerator 指令方法:类型转换指令
    前言:经过前面几篇的学习,我们了解到指令的大概分类,如:参数加载指令,该加载指令以 Ld开头,将参数加载到栈中,以便于后续执行操作命令。参数存储指令,其指令以St开头,将栈中的数据,存储到指定的变量中,以方便后续使用。创建实例指令,其指令以New开头,用于在运行时动态生成并初始化对......
  • 本地使用ts配置
    1.需要安装的依赖"dependencies":{"html-webpack-plugin":"^5.5.0","ts-loader":"^9.2.6","ts-node":"^10.4.0","tslib":"^2.3.1","typescript&q......
  • 详解K8s 镜像缓存管理kube-fledged
    本文分享自华为云社区《K8s镜像缓存管理kube-fledged认知》,作者:山河已无恙。我们知道 k8s 上的容器调度需要在调度的节点行拉取当前容器的镜像,在一些特殊场景中,需要快速启动和/或扩展的应用程序。例如,由于数据量激增,执行实时数据处理的应用程序需要快速扩展。镜像比......
  • STS设置
    STS设置编码格式window--->Preferences-->搜索encoding:把里面的全部改为UTF-8格式。设置字体大小格式切换模式设置背景色快捷键/* 快捷键*alt+/ 提示内容的快捷键*crtl+/ 单行注释*ctrl+shift+/ 多行注释*main+alt+/ 主方法快捷键*syso+al......
  • 构建动态交互式H5导航栏:滑动高亮、吸顶和锚点导航技巧详解
    功能描述产品要求在h5页面实现集锚点、吸顶及滑动高亮为一体的功能,如下图展示的一样。当页面滑动时,内容区域对应的选项卡高亮。当点击选项卡时,内容区域自动滑动到选项卡正下方。布局设计css布局为了更清晰的描述各功能实现的方式,将页面布局进行了如下的拆分。★最外层的元......
  • Mysql - 什么是三大范式(通俗详解)
    Mysql-什么是三大范式(通俗详解)高月之风关于数据的一切我都喜欢。​关注他 218人赞同了该文章​展开目录 Hello~我是高月!我将会在这篇文章中用通俗易懂的话为你简单说明什么是Mysql的三大范式。如果喜欢这篇文章,请点赞、关注......