【TypeScript学习】—面向对象(四)

news2024/11/28 21:46:12

【TypeScript学习】—面向对象(四)

一、面向对象

在这里插入图片描述

二、类

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、构造方法

class Dog{
    name:string;
    age:number;
    //构造函数
    constructor(name:string,age:number){
        this.name=name;
        this.age=age;
    }
    bark(){
        //在方法中可以通过this来表示当前调用方法的对象
        //this表示当前对象
        console.log(this.name);
    }
}

const dog=new Dog('旺财',3);
const dog2=new Dog('小白',2);
console.log(dog);
console.log(dog2);
dog.bark();

四、继承

在这里插入图片描述

五、super关键字

在这里插入图片描述

(function(){
    class Animal{
        name:String;
        constructor(name:string){
            this.name=name
        }

        say(){
            console.log('动物在叫')
        }
    }

    class Dog extends Animal{
        //如果在子类写了构造函数,在子类的构造函数中必须对父类的构造函数进行声明
//

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

        }
        say(){
            //在类的方法中super就表示当前类的父类
            super.say();

        }
    }

    const dog=new Dog('旺财',3);
    dog.say();
})();

六、抽象类

在这里插入图片描述

(function(){
    // 以abstract开头的都是抽象类
    //抽象类和其他类的区别不大 只是不能用来创建对象
    // 抽象类就是专门用来被继承的类
    //抽象类中可以添加抽象方法

   abstract class Animal{
        name:String;
        constructor(name:string){
            this.name=name
        }
        //定义一个抽象方法
        //  抽象方法使用abstract开头,没有方法体
        //抽象方法只能定义在抽象类中,子类必须对抽象方法进行重写
        abstract say():void;
    }

    class Dog extends Animal{
  
        say(){
          console.log('汪汪汪');

        }
    }

    const dog=new Dog('旺财');
    dog.say();
})();

七、接口

在这里插入图片描述
在这里插入图片描述

(function(){
    //描述一个类型的对象
  type myType={
    name:String,
    age:number
  };

  //接口用来定义个类结构,用来定义一个类中应该包含哪些属性和方法

  //同时接口也可以当成类型声明去使用

  interface myInterface{
    name:string;
    age:number;
  }

//   interface myInterface{
//     gender:string;
//   }
//    const obj:myInterface={
//     name:'sss',
//     age:111,
//     gender:'男'
//    };
})();

八、属性的封装

在这里插入图片描述

(function(){
 //定义一个表示人的类


 /*
 TS可以在属性前添加属性的修饰符
 public 修饰的属性可以在任意位置访问(修改)默认值
 private 私有属性 私有属性只能在类内部进行访问(修改),
 通过在类中添加方法使得私有属性可以被外部访问
protected 受保护的属性只能在当前类和当前类的子类进行访问




*/
 class Person{
 private  name:string;
 private   age:number;

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

    /*

    getter方法用来读取属性
    setter方法用来设置属性


    */

    //定义方法  用来获取name属性
    getName(){
        return this.name;
    }
    //定义方法  用来设置name属性
    setName(value:string){
        this.name=value
    }
 }

/*
 现在属性是在对象中设置的,属性可以任意的被修改
 属性可以任意被修改将会导致对象中的数据变得非常不安全
   
*/
 const p=new Person('cai',18);
 p.setName('lily');
console.log(p.getName())
})();

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

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

相关文章

数据结构零基础入门篇(C语言实现)

前言:数据结构属于C学习中较难的一部分,对应学习者的要求较高,如基础不扎实,建议着重学习C语言中的指针和结构体,万丈高楼平地起。 一,链表 1)单链表的大致结构实现 用C语言实现链表一般是使…

Mendix如何实现导出文件

刚刚接触Mendix低代码两周,花了一周在b站看初级视频然后考完初级,第二周开始做个列表查询感觉照葫芦画瓢没啥难度。但最近要求写个导出列表数据,在mendix社区翻了翻,这个功能算是常见的。找了mendix官方提供的Docs磕磕盼盼才实现了…

学会这几步,教你1分钟辨出B站优质UP主!

品牌想要投放某UP主,该如何判断UP主是否优质并且同品牌相匹配呢?运用这一套多维度的UP主评估方法 ,帮助你高效判断,快来看看具体怎么操作吧! 一、up主粉丝涨跌 有些广告主在判断UP主是否值得投放时,会陷入…

OLED透明屏 裸屏:透明未来的创新之选

OLED透明屏 裸屏作为一项领先的显示技术,正以其独特的优势和创新的设计特点引起广泛关注。 根据市场调研数据显示,预计到2025年,OLED透明屏 裸屏市场规模将达到250亿美元,年均增长率超过25%。 本文将通过深入探讨OLED透明屏 裸屏…

Vue2基础学习

vue基础学习 Vue基础指令v-show 和 v-ifv-on指令v-bind指令v-bind操作classv-bind 操作stylev-for 指令练习:图书管理案例v-model 指令修饰符v-model指令修饰符click.stop-》阻止冒泡按键修饰符阻止默认行为 计算属性计算属性简写computed计算属性VS方法methods计算…

Java版本+企业电子招投标系统源代码+支持二开+Spring cloud

项目说明 随着公司的快速发展,企业人员和经营规模不断壮大,公司对内部招采管理的提升提出了更高的要求。在企业里建立一个公平、公开、公正的采购环境,最大限度控制采购成本至关重要。符合国家电子招投标法律法规及相关规范,以及…

生成式人工智能促使社会转变

作者:JEFF VESTAL 了解 Elastic 如何处于大型语言模型革命的最前沿 – 通过提供实时信息并将 LLM 集成到数据分析的搜索、可观察性和安全系统中,帮助用户将 LLM 提升到新的高度。 iPhone 社会转变:新时代的黎明 曾几何时,不久前…

别再埋头苦干了,标准化财务数据分析方案开箱即用!

在这个数字化、智能化的时代,一味埋头苦干只会换来效率低下的结果,还是得巧用各种现成资源,以财务数据分析为例,就可以下载奥威BI财务数据分析方案。一键套用,立得覆盖各个主题的财务数据分析报表,快速摸清…

纯前端读写文件?

事情是这样的我发现vscode在线版居然可以打开文件目录和文件,还能保存文件。 兼容性一般 目前 谷歌 edge Opera 支持 其他均不支持 https://vscode.dev/ 查了一下MDN 发现增加新的API 了 https://developer.mozilla.org/zh-CN/docs/Web/API/Window/showDirectoryP…

使用js搭建简易的WebRTC实现视频直播

首先需要一个信令服务器,我们使用nodejs来搭建。两个端:发送端和接收端。我的目录结构如下图:流程 创建一个文件夹 WebRTC-Test。进入文件夹中,新建一个node的文件夹。使用终端并进入node的目录下,使用 npm init 创建p…

易基因:MeRIP-seq等揭示mRNA m6A甲基化调控拟南芥的抗寒性分子机制|植物抗逆

大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。 植物通过改变数千个基因的mRNA丰度以促进其生理和代谢过程,从而对低温应激进行响应。在转录后水平上,这些冷应激应答转录本经历可变剪接、microRNA介导的调控和可…

气象站的工作内容有哪些?

气象站的工作内容包括观测、记录和报告天气数据。具体来说,气象站需要通过各种传感器和数据记录器来测量和记录气温、湿度、风速、风向、气压、降雨量、雪深等气象参数,对数据的分析、处理和存储。例如,气象站需要将收集到的数据与历史数据进…

Redis设置开机自启动

(配置环境变量)需要重启电脑 1、在安装目录打开命令行,输入:打开一个命令窗进入文件夹内,输入redis-server --service-install redis.windows-service.conf 2、windowsR ---->services.msc 找到Redis,右…

【好书推荐】人月神话

《人月神话》一书被评为神品之作,以其深入的思想和优美的文字而享誉于软件工程领域。该书由Frederick P. Brooks撰写于28年前,探讨了软件工程领域的现实问题,揭示了软件行业在解决问题上存在的错误方案和缺乏专业性的现象。 在这本书中&…

独立站新手引流,谷歌SEO工具汇总

俗话说“工欲善其事,必先利其器”,做谷歌SEO也一样,要想做好并提升SEO效果,卖家就需要了解并利用好SEO工具。那我们今天就来盘点一下,常用的SEO工具有哪些吧~ 网站检测工具 1、PageSpeed Insights:这是谷…

Python足球训练打卡系统SpringBoot足球场地预约系统源码 调试 lw

💕💕作者:计算机源码社 💕💕个人简介:本人七年开发经验,擅长Java、Python、PHP、.NET、微信小程序、爬虫、大数据等,大家有这一块的问题可以一起交流! 💕&…

财报解读:德尔玛净利润同比增长10.79%,自研将延续增长态势?

高成长性的小家电领域,近年来已成为家电行业的热门赛道。数据显示,我国小家电行业未来将保持6%-7%左右增速,预计2026年市场规模将接近6000亿元。在庞大的市场机遇中,德尔玛等后起之秀也频频迎来投资者关注。 从进行品牌设计&…

图片转pdf软件有哪些?这几款收藏下来

图片转pdf软件有哪些?图片转PDF的需求很常见。有时候我们需要将一些图片文件合并成一个PDF文件,方便浏览和共享。比如说,你可能需要将一份报告或者简历的图片转换成PDF文件,以便于分享给其他人。此外,将图片转换成PDF文…

计算机网络自顶向下-web页面请求历程

1. 准备: DHCP、 UDP、 IP 和以太网 假定 Bob 启动他的便携机,然后将其用一根以太网电缆连接到学校的以太网交换机 , 交换机与学校的路由器相连。学校的路由器与一个 ISP 连接, 本例中 ISP 为 comcast.net ,为学校提供了 DNS 服务…

0010Java程序设计-springboot+vue影院售票系统设计与实现

摘 要目 录系统实现开发环境 摘 要 看电影已经成为了人们生活中不可缺少的一部分,电影院售票及管理系统是电影院的日常管理及售票任务的核心, 在电影院中, 工作人员并非只是放映电影, 还有诸如票房统计、影片放映、影片场次安排、…