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{staticStringnameCherry;staticvoidshow(){print(name$name);}}voidmain(){// var p new Person();// p.show();print(Person.name);// 使用 name 这个属性时直接通过 类名.属性 的方式Person.show();}静态方法不能访问非静态成员非静态方法可以访问静态成员classPerson{staticStringnameCherry;int age16;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 条件运算符在对向后面使用判断该对象是否是nullclassPerson{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 废弃了解PersonpnewPerson(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(){PersonpnewPerson(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 类型p1newPerson(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(){Personp1newPerson(Cherry,16);p1.printInfo();// p1.name 樱桃;// p1.age 18;// p1.printInfo();// 简化p1..name樱桃..age18..printInfo();}3、类的继承面向对象的三大特性封装、继承、多态。Dart 中的类的继承子类使用 extends 关键词来继承父类子类会继承父类里面可见的属性和方法但是不会继承构造函数子类能复写父类的方法 getter 和 setter3.1 简单继承一个子类继承父类那么这个子类的实例化对象直接可以使用这个父类的属性和方法。classPerson{StringnameCherry;num age16;voidprintInfo(){print(${this.name}---${this.age});}}classWebextendsPerson{}main(){WebwnewWeb();print(w.name);w.printInfo();}3.2 super 关键词3.3 复写父类的方法3.3 调用父类的方法
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2438528.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!