当前位置: 首页 > news >正文

Day13 | Dart 类核心特性:静态成员、对象操作符与继承机制

文章目录

    • 一、类
      • 1、类中的静态成员
      • 2、类中的对象操作符
        • 2.1 条件运算符
        • 2.2 类型判断
        • 2.3 类型转换
        • 2.4 级联操作
      • 3、类的继承
        • 3.1 简单继承
        • 3.2 super 关键词
        • 3.3 复写父类的方法
        • 3.3 调用父类的方法

一、类

1、类中的静态成员

使用static关键字来实现类级别的变量和函数

classPerson{staticStringname="Cherry";staticvoidshow(){print("name:$name");}}voidmain(){// var p = new Person();// p.show();print(Person.name);// 使用 name 这个属性时直接通过 类名.属性 的方式Person.show();}

静态方法不能访问非静态成员,非静态方法可以访问静态成员

classPerson{staticStringname="Cherry";int age=16;staticvoidshow(){print("name:$name");}/* 非静态方法可以访问静态成员以及非静态成员 */voidprintInfo(){print(name);// 可以访问静态属性---不用 thisprint(this.age);// 可以访问非静态属性---要用 thisshow();// 可以调用静态方法}/* 静态方法可以访问静态成员,不能访问非静态成员 */staticvoidprintUserInfo(){print(name);// 静态属性show();// 静态方法// print(this.age);// this.printInfo();// printInfo();}}voidmain(){// Person p = new Person();// p.printInfo();Person.printUserInfo();}

2、类中的对象操作符

  • ?条件运算符(了解)
  • as类型转换
  • is类型判断
  • ..级联操作/连缀操作
2.1 条件运算符

在对向后面使用,判断该对象是否是null

classPerson{lateStringname;late num age;Person(this.name,this.age);voidprintInfo(){print("${this.name}---${this.age}");}}voidmain(){// Person p;// p.printInfo(); // Error: Non-nullable variable 'p' must be assigned before it can be used.// p?.printInfo(); // 新版 Dart 废弃(了解)Personp=newPerson('Cherry',16);// p?.printInfo(); // 新版 Dart 废弃(了解)p.printInfo();}
2.2 类型判断

使用is判断该变量是什么数据类型

classPerson{lateStringname;late num age;Person(this.name,this.age);voidprintInfo(){print("${this.name}---${this.age}");}}voidmain(){Personp=newPerson('Cherry',16);if(pisPerson){// 判断 p 是否是 Person 类型p.name="樱桃";}p.printInfo();print(pisObject);// 所有的对象都继承来自 Object 类 --- true}
2.3 类型转换

使用as进行类型转换

classPerson{lateStringname;late num age;Person(this.name,this.age);voidprintInfo(){print("${this.name}---${this.age}");}}voidmain(){varp1;p1='';// String 类型p1=newPerson('Cherry',16);// Person 对象// p1.printInfo(); // 老版本这样运行会报错(p1asPerson).printInfo();// 把 p1 强制转换为 Person 对象}
2.4 级联操作

在对象的后面使用级联符号..加属性或方法,会返回对象本身,类似于 Java 中的 Builder 建造者模式

classPerson{lateStringname;late num age;Person(this.name,this.age);voidprintInfo(){print("${this.name}---${this.age}");}}voidmain(){Personp1=newPerson('Cherry',16);p1.printInfo();// p1.name = '樱桃';// p1.age = 18;// p1.printInfo();// 简化p1..name='樱桃'..age=18..printInfo();}

3、类的继承

面向对象的三大特性:封装、继承、多态。

Dart 中的类的继承:

  1. 子类使用 extends 关键词来继承父类
  2. 子类会继承父类里面可见的属性和方法,但是不会继承构造函数
  3. 子类能复写父类的方法 getter 和 setter
3.1 简单继承

一个子类继承父类,那么这个子类的实例化对象直接可以使用这个父类的属性和方法。

classPerson{Stringname='Cherry';num age=16;voidprintInfo(){print('${this.name}---${this.age}');}}classWebextendsPerson{}main(){Webw=newWeb();print(w.name);w.printInfo();}
3.2 super 关键词
3.3 复写父类的方法
3.3 调用父类的方法
http://www.jsqmd.com/news/519655/

相关文章:

  • 比话降AI超15%退款是真的吗?退款流程和条件全解析
  • 相场法在水力压裂模拟中越来越火,尤其是COMSOL这种多物理场耦合神器。今天咱们拆解几个典型工况,手把手看裂缝怎么在代码里“长“出来。先拿最简单的单裂缝开刀——
  • [2015] [Gorila DQN] [Massively Parallel Methods for Deep Reinforcement Learning]
  • Java并发避坑:一文搞懂死锁的本质、实例与解决方案
  • Python数据结构完全指南:列表、字典、元组与集合精通
  • Java锁升级深度解析:从偏向锁到重量级锁,一文读懂锁的“进化”之路
  • 为什么比话敢承诺“不达标全额退款“?技术底气在哪里
  • 计算机毕业设计 java 学校社团活动管理系统 JavaWeb 校园社团事务管理平台 基于 SpringBoot 的高校社团活动统筹系统
  • MinIO在Linux上的5个隐藏性能优化技巧(实测提升30%吞吐量)
  • 生殖健康咨询线上培训考试,北京守嘉职业技能,工作学习两不误 - 品牌排行榜单
  • React15 - React15应用Sass使用指南
  • BiSeNetV2双分支结构解析:如何用Detail Branch和Semantic Branch玩转实时分割?
  • 生殖健康咨询培训适合哪些人?北京守嘉全覆盖,人人可学 - 品牌排行榜单
  • 计算机毕设 java 辽宁工大毕业论文管理系统 Java 高校毕业论文全流程管理平台开发 基于 SpringBoot 的毕业论文选题与答辩管理系统实现
  • 为什么你的网速总是不达标?从带宽、吞吐量到时延的完整解析
  • 580万台登顶,割草机暴涨63.8%:2025全球清洁机器人座次表,国产包揽前五
  • 为什么说Tailscale是远程办公神器?深度解析WireGuard底层+真实团队协作案例
  • python+flask+vue3云南旅游景点酒店预订系统网站
  • SQLite - Perl:深入浅出数据库编程实践
  • 腾讯零信任提示系统的优化经验:提示工程架构师的参考!
  • 三方支付为什么不用双向ssl,与U盾
  • python+flask+vue3企业员工加班调休考勤请假管理系统
  • Python uWSGI 安装配置
  • ⋐ 11-2 ⋑ 软考高项 | 第 6 章:项目管理概论 [ 下 ]
  • 激光雷达:自动驾驶的“中国眼”与西方的反击之问
  • 数据中心能耗优化:AI应用架构师用边缘智能体实现20%节能的技巧
  • 大疆P4M多光谱影像辐射定标实战:从原理到精度验证
  • 云雀播放器 2026.3.6 | 高颜值音乐播放器 动画非常流畅 全球超1亿用户
  • 【故障公告】数据库服务器磁盘 MBPS 高造成 22:00
  • 《企业AI研发标准的搭建策略,AI应用架构师的关键思路》