day33

news2024/12/22 18:24:47

类类型接口 

静态属性和静态方法

区分方法就是必须要有    new什么东西  完成什么类

第二种类类型接口   字面量类类型接口

接口继承

接口继承接口

继承多个接口

接口可以继承多个,但是类只能继承一个

接口不能继承对象

接口继承类,仅继承类中对于实例化属性和实例化方法描述,并不继承值和内容
如果接口需要继承某个类,要求类中的所有实例化属性和方法必须是共有public

所有属性的修饰符 public(共有)  private(私有)   protected(受保护)

如果希望这个属性和方法暴露给实例化对象(实例化对象可以调用则使用public),如果这个属性和方法在子类中
需要调用或者重新,就需要使用protected,如果这个属性和方法要求只能在当前类中调用,使用private
优先使用private,如果有继承并需要重写或者使用,可以修改为protected,当类写完后将实例化对象需要暴露
调用的才可以设置为public

// 实例化可以调用的方法和属性一般就属于暴露的属性和方法

// var b:Box=new Box();

// console.log(b.a);

// 类不需要使用public

类中方法是否需要返回值

禁止给构造函数设置返回类型,禁止在构造函数中使用return返回任何内容,可以使用return跳出

存取器定义时,setter不能设置返回类型,并且不能使用return返回任何值,必须设置一个参数

getter不能设置参数,必须设置返回值,尽量要求getter中的返回值和setter中参数类型完全一致

构造函数的修饰符

当构造函数设置为私有的时候,这个类就在这个类以外实例化

 当构造函数设置为私有的时候,这个类也是不能被继承的

 var b:Box=new Box();

console.log(b);

console.log(Box.getBox());

当构造函数设置为受保护的时候,这个类就可以被子类继承,并且在子类中设置共有的构造函数

 在父类中设置的私有的方法和构造函数,在子类中无法重设为共有,但是受保护的可以在子类中修改为共有

单例模式

 单例要求这个类只能创造一个实例化对象,并且这个实例化对象在任何地方都可以直接调用

普通类

为什么需要单例

// 下面案例中A类和B类中都有自身重新实例化的Box的对象,因此A类中和B类中box不是同一个,所以属性是不相同的

单例模式

// 下面的写法,每次调用get Instance就会new 一个新的实例化对象

 下面的类中调用了相同的实例化对象

// 修饰符用于静态属性和方法

抽象类  抽象类一般用于基类,不能实例化

// 使用abstract定义类,这个类就是抽象类

// abstract class Box{

//     public a:number=1;

//     // 抽象属性,必须设置初始值

//     // 抽象属性和抽象方法必须使用public或者protected来定义不能使用private

//     public abstract b:number;

//     constructor(){

//     }

//     public play():void

//     {

//         console.log("play");

//     }

//     // 抽象方法,不能设置方法的内容

//     public abstract run():void;

// }

// interface IA{

//     b:number;

//     run():void;

// }

// 当类继承抽象类时,需要对于抽象类中的属性设定初始值,需要对于抽象类中抽象方法重新设置方法的内容

/*

 一般来说,当定义的类只是作为基础类别,用于继承,并不是实际解决问题,这个类可以设置抽象类

 抽象类的优点,在于抽象类可以理解为是类和接口的结合体,将共同都需要执行相同内容的属性和方法

 设置为抽象类普通属性和方法,将需要子类具体实现的内容方法和属性设置为抽象属性和方法,由子类

 具体自身去实现,这样不同的子类可以同一个方法实现不同的效果

接口内定义的属性和方法,在类中实现时一定是public

对象的属性映射

// var obj:{a:number,b:number}={a:1,b:2};

// for(var key in obj){

//     // 不确定key是obj的属性名a或者b

//     let k:keyof {a:number,b:number}=key  as keyof {a:number,b:number}

//     console.log(key,obj[k]);

// }

// keyof 接口  指这个属性就是接口的属性

// interface IO{

//     a:number;

//     b:number;

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

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

相关文章

力扣高频SQL 50题(基础版)第二十六题

文章目录 力扣高频SQL 50题(基础版)第二十六题1667.修复表中的名字题目说明实现过程准备数据实现方式结果截图总结 力扣高频SQL 50题(基础版)第二十六题 1667.修复表中的名字 题目说明 表: Users ----------------…

Day7-指针专题二

1. 字符指针与字符串 C语言通过使用字符数组来处理字符串 通常,我们把char数据类型的指针变量称为字符指针变量。字符指针变量与字符数组有着密切关系,它也被用来处理字符串 初始化字符指针是把内存中字符串的首地址赋予指针,并不是把该字符串…

TCP/UDP通信

1、TCP/IP四层模型 TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)是指能够在多个不同网络间实现信息传输的协议簇。TCP/IP协议不仅仅指的是TCP 和IP两个协议,而是指一个由FTP、SMTP、TCP、UDP…

【Linux】make/Makefile的理解

1.make是一个命令,makefile是一个文件, 依赖关系和依赖方法. a.快速使用一下 i.创建一个Makefile文件(首字母也可以小写) b.依赖关系和依赖方法 i.依赖关系: 我为什么要帮你? mybin:mytest.c ii.依赖方法: 怎么帮? gcc -o mybin mytest.c make之前要注意先创建…

每期一个小窍门: 使用Gin 与 client-go 操作k8s (中)

本文承接上文 每期一个小窍门: 使用Gin 与 client-go 操作k8s (上) 后面应该还会有个下 应该是个operator的全程demo 项目结构如下 client.go package clientimport ("k8s.io/client-go/discovery""k8s.io/client-go/kubernetes"…

使用easypoi读取Excel模板

1、只读取一个脚本号Excel2、读取多个脚本号的sheet…Excel 1、只读取sheet0(只读取一个脚本号的Excel) 前言&#xff1a;引入pom文件 <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>3.3.2</…

OV SSL证书申请指南

OV SSL证书除了验证域名所有权外还需要验证组织信息&#xff0c;这类证书适用于对公司官网、品牌、安全性等有较高程度要求的企业级用户。具体申请流程如下&#xff1a; 一 、注册账号 注册账号填写230919注册码即可获得大额优惠券和全程一对一技术支持https://www.joyssl.co…

网页速度如何优化?从10s到0.5s

如何排除网页速度慢的故障&#xff1f; 优化运行缓慢的网页涉及多个层面的改进&#xff0c;可分为硬件、前端和后台优化。下面是一份全面的指南&#xff1a; 01 硬件优化 服务器资源 升级服务器&#xff1a;确保服务器能为流量提供足够的资源&#xff08;CPU、内存、带宽等&a…

【Windows】Mountain Duck(FTP服务器管理工具)软件介绍

软件介绍 Mountain Duck是一款基于Cyberduck开发的应用程序&#xff0c;它允许用户通过FTP、SFTP、WebDAV、S3和OpenStack Swift等协议连接到云存储和远程服务器&#xff0c;并在本地文件浏览器中以熟悉的方式访问和管理这些文件。 功能特点 支持多种协议: Mountain Duck支持…

右键没有压缩选项

想压缩文件选中右键没有压缩选项。 打开任意rar文件 选择选项-》设置&#xff0c;添加到winrar到开始菜单即可

HTML+CSS+JavaScript实现烟花绽放的效果源码

源码 复制粘贴代码 在同级别下放一张图片fire.png接可以了 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><…

AI多模态模型架构之输出映射器:Output Projector

〔探索AI的无限可能&#xff0c;微信关注“AIGCmagic”公众号&#xff0c;让AIGC科技点亮生活〕 本文作者&#xff1a;AIGCmagic社区 刘一手 前言 AI多模态大模型发展至今&#xff0c;每年都有非常优秀的工作产出&#xff0c;按照当前模型设计思路&#xff0c;多模态大模型的…

QChart笔记6:显示点的值、显示点坐标值

在QChart笔记2: 添加鼠标悬停显示和格式处理_qchart 折线图 响应鼠标显示数据-CSDN博客上修改而来。 在笔记2中&#xff0c;通过鼠标悬停的方式显示了坐标轴Y的值&#xff0c;如果要一直显示应该怎么写呢&#xff1f;比如要达到下面的效果。 核心是这句&#xff1a; series1-…

Windows10安装——制作U盘启动盘(保姆级)

安装前准备&#xff1a; 一个不少于8G的U盘&#xff0c; 一个可以上网的windows电脑&#xff1b; 第一步&#xff1a;安装启动盘制作工具 首先我们下载启动盘制作工具&#xff0c; 官网网址&#xff1a;下载 Windows 10 (microsoft.com)&#xff1b; 百度网盘下载&#xf…

赛氪网受邀参加中国国际科技促进会第五届第五次常务理事扩大会议

2024年7月27日&#xff0c;环球赛乐&#xff08;北京&#xff09;科技有限公司&#xff08;以下简称“赛氪网”&#xff09;受邀参加了中国国际科技促进会第五届第五次常务理事扩大会议。此次会议汇聚了众多科技界的精英和专家&#xff0c;共同探讨科技发展的新方向&#xff0c…

【Mybatis】xml 配置文件

Mybatis的开发有两种方式&#xff1a; 注解XML 使用Mybatis的注解方式&#xff0c;主要是来完成一些简单的增删改查功能。 如果需要实现复杂的SQL功能&#xff0c;建议使用XML来配置映射语句&#xff0c;也就是将SQL语句写在XML配置文件中。在Mybatis中使用XML映射文件方式开…

Cxx primer-chap10-Generic Algorithms

generic algorithms的解释&#xff1a;&#xff0c;具体而言iterator使得算法与容器类型无关&#xff1a;&#xff0c;但算法的实现成功与否有时依赖于&#xff08;element type&#xff09;元素类型&#xff1a;通用算法的实现依赖于iterator&#xff0c;具体而言algorithm –…

python windows环境部署

在官网安装www.python.org linux系统的只能编译安装 windows的可以直接安装 这里是windows安装 .3.9.6版本 一直下一步就可以&#xff0c;然后鼠标右键在按住shift用终端打开 输入py或者python验证一下是否安装成功 打开目录文件夹 在里面新建一下pip的文件夹&#xff0c;里…

OpenAI开发了一种新方法来教授AI模型与安全政策保持一致

OpenAI 宣布了一种新的方法来教授人工智能模型与安全政策保持一致&#xff0c;这种方法被称为"基于规则的奖励"&#xff08;Rules Based Rewards&#xff09;。据 OpenAI 安全系统负责人 Lilian Weng 介绍&#xff0c;基于规则的奖励&#xff08;RBR&#xff09;可以…

【研发日记】Matlab/Simulink技能解锁(十一)——Stateflow中的en、du、ex应用对比

文章目录 前言 项目背景 en类型 du类型 ex类型 组合类型 分析和应用 总结 参考资料 前言 见《【研发日记】Matlab/Simulink技能解锁(六)——六种Simulink模型架构》 见《【研发日记】Matlab/Simulink技能解锁(七)——两种复数移相算法》 见《【研发日记】Matlab/Simul…