HarmonyOS class类对象基础使用

news2024/11/14 21:54:06

按我们之前的写法
就是

@Entry
@Component
struct Dom {
  p:Object = {
    name: "小猫猫",
    age: 21,
    gf: {
      name: "小小猫猫",
      age: 18,
    }
  }
  build() {
    Row() {
      Column() {
        // @ts-ignore
        Text(this.p.gf.name)
      }
      .width('100%')
    }
    .height('100%')
  }
}

直接用 Object 一层一层往里套
这个结构 其实并不是那么友好 而且编辑器没有那么认可 需要用 // @ts-ignore标识才能通过语法检查
不过 运行到没什么问题
在这里插入图片描述
我们可以直接将代码结构改成这样

class Person{
  name: string
  age: number
  gf: Person
  constructor(name: string, age: number,gf?: Person) {
    this.name = name;
    this.age = age;
    this.gf = gf;
  }
}
@Entry
@Component
struct Dom {
  p: Person =new Person(
    '小猫猫',
    21,
    new Person('小小猫猫', 18)
  )
  build() {
    Row() {
      Column() {
        Text(this.p.gf.name)
      }
      .width('100%')
    }
    .height('100%')
  }
}

这是 我们声明的对象结构体 一个class 类型 其中包含3个属性
string字符串类型的 name
number数字类型的 age
gf比较特殊 它是 Person类型 就是我们声明的这个类的类型的 简单说 就是 Person的gf可以再套一个Person对象
然后构造函数

然后 constructor 构造函数 相当于创建对象时 就会触发
然后 它接收 三个参数 分别就是我们的三个属性 然后 给自己的赋值

然后 我们定义一个 Person 类型的 属性 叫 p
第一个参数 name 赋值为 小猫猫
第二个参数 age 赋值为 21
然后 第三个参数 gf 类型是 Person 于是 我们new一个Person对象
这个我们只给了两个参数 name 小小猫猫 age 18
这也间接告诉大家 如果类对象的字段 你不想赋值 直接不传就好了
运行结果如下
在这里插入图片描述

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

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

相关文章

MySQL用心总结

大家好,好久不见,今天笔者用心一步步写一份mysql的基础操作指南,欢迎各位点赞收藏 -- 启动MySQL net start mysql-- 创建Windows服务 sc create mysql binPath mysqld_bin_path(注意:等号与值之间有空格) mysql -h 地址 -…

【Flink状态管理(二)各状态初始化入口】状态初始化流程详解与源码剖析

文章目录 1. 状态初始化总流程梳理2.创建StreamOperatorStateContext3. StateInitializationContext的接口设计。4. 状态初始化举例:UDF状态初始化 在TaskManager中启动Task线程后,会调用StreamTask.invoke()方法触发当前Task中算子的执行,在…

如何从 iPhone 上恢复永久删除的照片

您的 iPhone 上缺少照片吗?讽刺的是,iPhone 的许多高级功能可能正是这个问题如此普遍的原因。幸运的是,还有很多方法可以从 iPhone 恢复已删除的照片,具体取决于您设备的设置方式。 本文涵盖了所有这些内容。该过程根据您的具体情…

git安装配置

1、下载安装 下载地址 2、配置git用户 git config --global user.name "yw" git config --global user.email "88888qq.com" 3、git init 初始化 4、生成ssh密钥 mkdir .ssh //创建文件夹cd .ssh //进入新建文件夹 ssh-keygen -t rsa // 输入密钥文…

计算机服务器中了halo勒索病毒如何处理,halo勒索病毒解密数据恢复

网络技术的不断发展与应用,为企业的生产生活提供了极大便利,但网络数据安全威胁无处不在,近日,云天数据恢复中心接到某连锁超市求助,企业计算机服务器被halo勒索病毒攻击,导致计算机系统瘫痪,无…

将xyz格式的GRACE数据转成geotiff格式

我们需要将xyz格式的文件转成geotiff便于成图,或者geotiff转成xyz用于数据运算,下面介绍如何实现这一操作,采用GMT和matlab两种方法。 1.GMT转换 我们先准备一个xyz文件,这里是一个降水文件。在gmt中采用以下的语句实现xyz转grd…

【Spring】GoF 之工厂模式

一、GoF 23 设计模式简介 设计模式:一种可以被重复利用的解决方案 GoF(Gang of Four),中文名——四人组 《Design Patterns: Elements of Reusable Object-Oriented Software》(即《设计模式》一书)&…

TCP 传输控制协议

1 TCP 1.1 TCP 最主要的特点 1.TCP 是面向连接的运输层协议。 2.每一条 TCP 连接只能有两个端点 (endpoint),每一条 TCP 连接只能是点对点的(一对一)。 3.TCP 提供可靠交付的服务。 4.TCP 提供全双工通信。 5.面向字节流 TCP 中的“流…

【Qt】Android上运行keeps stopping, Desktop上正常

文章目录 问题 & 背景背景问题 解决方案One More ThingTake Away 问题 & 背景 背景 在文章【Qt】最详细教程,如何从零配置Qt Android安卓环境中,我们在Qt中配置了安卓开发环境,并且能够正常运行。 但笔者在成功配置并完成上述文章…

Git、github与gitee码云

1.git核心是两个仓库:本地仓库和远程仓库 主要用于团队合作和代码版本控制(个人现有版本代码出错可回溯上个提交版本的代码) 远程仓库国际主流githut,但外网速度问题,国内可使用码云gitee github:https:…

Springboot拦截器中跨域失效的问题、同一个接口传入参数不同,一个成功,一个有跨域问题、拦截器和@CrossOrigin和@Controller

Springboot拦截器中跨域失效的问题 一、概述 1、具体场景 起因: 同一个接口,传入不同参数进行值的修改时,一个成功,另一个竟然失败,而且是跨域问题拦截器内的request参数调用getHeader方法时,获取不到前端…

CSS:九宫格布局

九宫格布局效果如下&#xff1a; HTML 结构&#xff1a; <div class"container"><div class"item">1</div><div class"item">2</div><div class"item">3</div><div class"item&q…

机器学习系列——(十六)回归模型的评估

引言 在机器学习领域&#xff0c;回归模型是一种预测连续数值输出的重要工具。无论是预测房价、股票价格还是天气温度&#xff0c;回归模型都扮演着不可或缺的角色。然而&#xff0c;构建模型只是第一步&#xff0c;评估模型的性能是确保模型准确性和泛化能力的关键环节。本文…

【力扣】快乐数,哈希集合 + 快慢指针 + 数学

快乐数原题地址 方法一&#xff1a;哈希集合 定义函数 getNext(n) &#xff0c;返回 n 的所有位的平方和。一直执行 ngetNext(n) &#xff0c;最终只有 2 种可能&#xff1a; n 停留在 1 。无限循环且不为 1 。 证明&#xff1a;情况 1 是存在的&#xff0c;如力扣的示例一…

(十八)springboot实战——spring securtity注解方式的授权流程源码解析

前言 在上一节内容中&#xff0c;我们介绍了如何在FilterSecurityInterceptor过滤器中处理用户的授权流程&#xff0c;并分析了其源码&#xff0c;spring security还提供了方法级别的授权方式&#xff0c;通过EnableMethodSecurity注解启用权限认证流程&#xff0c;只需要在方…

每日一题——LeetCode1422.分割字符串的最大得分

方法一 暴力枚举 枚举所有分割点的情况&#xff0c;取最大得分 var maxScore function(s) {let res 0;const n s.length;for (let i 1; i < n; i) {let score 0;for (let j 0; j < i; j) {if (s[j] 0) {score;}}for (let j i; j < n; j) {if (s[j] 1) {sco…

分享86个行业PPT,总有一款适合您

分享86个行业PPT&#xff0c;总有一款适合您 86个行业PPT下载链接&#xff1a;https://pan.baidu.com/s/1avbzwqK8ILLWYIOylK1aRQ?pwd8888 提取码&#xff1a;8888 Python采集代码下载链接&#xff1a;采集代码.zip - 蓝奏云 学习知识费力气&#xff0c;收集整理更不易…

TI的电量计驱动在卸载时导致Linux卡死

背景 最近移植TI电量计芯片bq40z50的驱动&#xff0c;移植完毕后&#xff0c;能正常读取电池信息了&#xff0c;但是无意中发现驱动卸载会导致Linux卡死&#xff0c;死前终端闪过大量打印&#xff0c;将putty的缓冲区都耗尽了&#xff0c;必须启用syslog转发并用visual syslog…

【数据结构】链表OJ面试题4(题库+解析)

1.前言 前五题在这http://t.csdnimg.cn/UeggB 后三题在这http://t.csdnimg.cn/gbohQ 给定一个链表&#xff0c;判断链表中是否有环。http://t.csdnimg.cn/Rcdyc 记录每天的刷题&#xff0c;继续坚持&#xff01; 2.OJ题目训练 10. 给定一个链表&#xff0c;返回链表开始…

Qt PCL学习(二):点云读取与保存

注意事项 版本一览&#xff1a;Qt 5.15.2 PCL 1.12.1 VTK 9.1.0前置内容&#xff1a;Qt PCL学习&#xff08;一&#xff09;&#xff1a;环境搭建 0. 效果演示 1. pcl_open_save.pro QT core guigreaterThan(QT_MAJOR_VERSION, 4): QT widgets// 添加下行代码&#…