08:Dart语言中静态属性、静态方法、对象操作符的使用。

1、静态属性和静态方法。

1>使用static关键字来实现类级别的变量和函数。
2>静态方法不能访问非静态成员和方法,非静态方法可以访问静态成员和方法。
class Books{
//静态成员变量
static late String bookName;
//非静态成员变量
late int bookNumber;
Books(){
bookName = "猫和老鼠第一版";
bookNumber = 100;
}

//静态方法
static void look(){/*静态方法可以访问静态成员以及调用静态,不可以访问非静态成员和非静态方法 */
print("这是一个静态方法...");
print("静态方法访问静态成员:$bookName");
show();//访问静态方法
}
static void show(){
print("这是一个静态方法...");
}

void printDes(){/*非静态方法可以访问静态成员和非静态成员以及调用静态和非静态方法 */
print("这是一个非静态方法...");
print("非静态方法访问静态属性:$bookName");
print("非静态方法访问非静态属性:${this.bookNumber}册");
look();//调用静态方法
}
}
void main(){

//类的实例来访问非静态方法和属性
Books book1 = new Books();
book1.printDes();
book1.bookNumber;

//直接用类来访问静态方法和属性
Books.look();
Books.bookName;
}

2、Dart中的对象操作符。

/*
? 条件运算符 (存在调用、不存在舍弃)
as 类型转换符
is 类型判断
.. 级联操作(连缀)
*/

class Person{
String name;
int age;
Person(this.name,this.age);
void printUserInfo(){
print("姓名:${this.name},性别:${this.age}");
}
}
void main(){
Person per = new Person("张三", 15);
per.printUserInfo();

//? 静态检查nickName为空(null)不会报错。
String? nickName;

//as 类型转换
// var mokey;
// (mokey as Person).printUserInfo();

//is 类型判断
// if(mokey is Person){
// mokey.printUserInfo();
// }

//.. 级联操作
Person per1 = new Person("张三", 15);
per1..name = "李四"
..age = 30
..printUserInfo();
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值