鸿蒙开发 三十七 ArkTs类 class 构造函数

news2024/10/24 15:13:42

语法格式如下:

class 类名{

字段1:类型

字段2:类型

constructor(参数...) {
this.字段 = 参数
}

}

实例化:

const 实例1 = new 类名(参数...)每new一次就去执行一次constructor方法,创建不同的实例。

每次new都要传参数,如果参数是一个一个的传,那如果增加字段了就需要增加相应的参数,如果这个方法有许多地方修改,那就得修改许多地方,怎么办呢?增加一个构造方法呗,不好意思,鸿蒙一个类中只能有一个构造方法,解决这种问题是,构造函数中传接口对象,增加字段只需要在接口对象中添加,类中也新增字段,然后在构造函数中体增加赋值就可以了,就是这个构造函数之前有许多地方调用也不用修改,new的时候 传参数直接一个实例扔给构造方法完事 代码如下:

// 类
// class 类名 {
//   字段名:类型 = 初始值
//   字段名?:类型
// }

interface ICat{
  name: string
  foods?: string
  age:number
}

class Cat {
  name: string
  foods?: string
  age:number

  constructor(iCat:ICat) {
    this.name = iCat.name
    this.foods = iCat.foods
    this.age = iCat.age

  }
}
// 基于类, 创建对象
const   c:Cat = new Cat({
  name:"猫咪",
  foods:"肉",
  age:1
})
c.foods = '大米饭'
console.log('大米饭:', c.name.length)


let p: Cat = new Cat({
  name:"猫咪名字",
  foods:"猫粮",
  age:1
})
@Entry
@Component
struct Index {
  build() {

  }
}

总结:鸿蒙开发中类的构造函数,不同对象的实例化,需要在构造函数中传不同的值,鸿蒙中没有重载的语法,为了使代码改动最小,构造方法中最好是接收接口对象,因为接口对象的实例化不需要构造方法,在构造方式实体内取到接口对象的值然后赋值给对象即可

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

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

相关文章

MySQL学习笔记(持续更新,目前到十一章锁)

1、Mysql概述 1.1 数据库相关概念 三个概念:数据库、数据库管理系统、SQL 名称全称简称数据库存储数据的仓库,数据是有组织的进行存储DataBase(DB)数据库管理系统操纵和管理数据库的大型软件DataBase Mangement System&#xf…

C++ -string -常见用法1

博客主页:【夜泉_ly】 本文专栏:【C】 欢迎点赞👍收藏⭐关注❤️ 文章目录 💡前言1.构造函数1.1函数原型1.2用法速览1.3详解() -重点⭐( s) -重点⭐( n, c) -重点⭐( str) -重点⭐( str, pos, len)( s, n) 2.容量函数2.1函数原型2…

github 上将 stable 合并到 master 分支步骤

本地仓库分支:origin 远端仓库分支:upstream 切到非 master 分支上,比如 dev # 本地操作 git branch -D master git fetch upstream master::master git checkout master # 这步是拉取远端 stable 到 master 上,可能会出错误 # fa…

21次惊艳亮相!凯特王妃的秋季时尚造型!在时尚领域她已经无限接近戴安娜王妃

虽然凯特米德尔顿正式成为英国王室成员才刚刚十多年,但很难想象没有她的王室会是什么样子。毕竟,凭借她非凡的风格和不可否认的魅力,威尔士王妃在2011年迅速赢得了我们以及全世界的喜爱。 我们都喜欢关注她的项目以及她和威廉王子的爱情故事…

基于STM32的智能电能表设计

引言 本项目设计了一个基于STM32的智能电能表,能够实时测量电压、电流、功率以及累计的电能消耗。通过ADC模块采集电压和电流信号,结合功率计算算法,系统可以精准地监控家庭或工业设备的电能消耗。该智能电能表还支持远程数据传输和本地数据…

Krea.ai正式发布AI视频集合站:Luma、Runway与可灵的深度整合

引言 在数字内容日益丰富的今天,视频制作的需求呈现爆发式增长。为了满足创作者对高效、创新视频工具的渴求,Krea.ai推出了全新的AI视频集合站。此平台整合了多款领先工具,如Luma、Runway、可灵和Minimax,为用户提供一站式的视频…

【等号绕过】

简介 一、大小于号绕过 上面的<>是不等于的意思 测试注入点&#xff1a; id1 正常输入id1 测试是否有注入id1 and 11%23 提示hacker~ 被过滤了id1 and 1%23 没有被过滤&#xff0c;说明是被过滤&#xff0c;但是没有输出id1 and 1%23 页面有输…

25四非网安保研回忆录(北航网安/东南网安/重大计科等)

目录 0 个人情况 1 夏令营 西南大学计科 西南交通大学计科 重庆大学计科 2 预推免 东南大学网安 北京航空航天大学网安 3 写在最后 0 个人情况 计算机类比较强的四非&#xff0c;信安专业rank1&#xff0c;六级540&#xff0c;竞赛十几个&#xff0c;无论文&#xff…

【Linux网络编程】网络基础 | Socket 编程基础

&#x1f308;个人主页&#xff1a; 南桥几晴秋 &#x1f308;C专栏&#xff1a; 南桥谈C &#x1f308;C语言专栏&#xff1a; C语言学习系列 &#x1f308;Linux学习专栏&#xff1a; 南桥谈Linux &#x1f308;数据结构学习专栏&#xff1a; 数据结构杂谈 &#x1f308;数据…

2.13寸电子墨水屏HINK-E0213+esp8266

记录好数字 2.13寸电子墨水屏HINK-E0213esp8266 声明:大部分资料来源于微雪电子http://微雪电子-官网 https://www.waveshare.net/ 前言 很久以前买的一块电子墨水屏,运气很好,这个型号HINK-E0213资料很全,而且微雪官网也有相关电路资料http://2.13inch e-Paper HAT - Waves…

java邮件发送

文章目录 前言一、开启SMTP邮箱配置二、spring-mail1.引入依赖2.yml配置3.使用二、hutool-mail1.引入hutool2.在resource下新增mail.setting3.使用总结前言 发送邮件: 目前比较简单的有两种方式实现: spring-mailhuool-mail现在看下两种方式 一、开启SMTP邮箱配置 两种方式…

mysql查询2张表连接列名一样的情况

people表&#xff1a; person表&#xff1a; SELECT * FROM person LEFT JOIN people on people.idperson.id 查询的结果id(1)和name(1)说明列名重复 SELECT person.id,person.name,people.id as pid,people.name as pname FROM person LEFT JOIN people on people.idperso…

Linux shellcheck工具

安装工具 通过linux yum源下载&#xff0c;可能因为yum源的问题找不到软件包&#xff0c;或者下载的软件包版本太旧。 ShellCheck的源代码托管在GitHub上(推荐下载方式)&#xff1a; GitHub - koalaman/shellcheck: ShellCheck, a static analysis tool for shell scripts 对下…

10.高级存储过程技巧(10/10)

高级存储过程技巧博客大纲 引言 在现代数据库管理系统中&#xff0c;存储过程作为提升数据操作效率和安全性的关键工具&#xff0c;已被广泛应用于各种数据库操作中。存储过程是一组为了完成特定功能的SQL语句集合&#xff0c;这些语句在数据库中被保存、编译和优化&#xff0…

Chromium 前端window对象c++实现定义

前端中window.document window.alert()等一些列方法和对象在c对应定义如下&#xff1a; 1、window对象接口定义文件window.idl third_party\blink\renderer\core\frame\window.idl // https://html.spec.whatwg.org/C/#the-window-object// FIXME: explain all uses of [Cros…

【原创】java+springboot+mysql在线课程学习网设计与实现

个人主页&#xff1a;程序猿小小杨 个人简介&#xff1a;从事开发多年&#xff0c;Java、Php、Python、前端开发均有涉猎 博客内容&#xff1a;Java项目实战、项目演示、技术分享 文末有作者名片&#xff0c;希望和大家一起共同进步&#xff0c;你只管努力&#xff0c;剩下的交…

陪诊小程序搭建:打造便利的陪诊环境

陪诊行业作为一个新兴行业&#xff0c;随着老龄化的严重&#xff0c;在近几年中需求量日益旺盛。陪诊师为大众的就医提供了极大的便利性&#xff0c;在看病难、医疗资源紧张方面发挥了积极作用。 在陪诊行业的快速发展下&#xff0c;陪诊小程序为行业带来了便捷的模式&#xf…

使用 three.js和 shader 实现一个五星红旗 飘扬得着色器

使用 three.js和 shader 实现一个五星红旗 飘扬得着色器 源链接&#xff1a;https://threehub.cn/#/codeMirror?navigationThreeJS&classifyshader&idchinaFlag 国内站点预览&#xff1a;http://threehub.cn github地址: https://github.com/z2586300277/three-ce…

数学建模算法与应用 第6章 微分方程建模及其求解方法

目录 6.1 微分方程建模概述 6.2 发射卫星与三阶火箭建模 Matlab代码示例&#xff1a;火箭发射模拟 6.3 微分方程数值解法 Matlab代码示例&#xff1a;欧拉法与龙格-库塔法 6.4 放射性废料的处理 Matlab代码示例&#xff1a;放射性衰变 6.5 初值问题的Matlab数值求解 习…

Java项目:149 基于SSM的毕业设计管理系统

作者主页&#xff1a;源码空间codegym 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 毕业设计管理系统 介绍 毕业设计是本科教育的最后一个环节&#xff0c;整个过程包括课题拟定与审核、师生双选、开题报告、文档审核、中期检查、毕业答…