FlutterDart的类方法和对象操作符
Posted 卡卡西Sensei
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FlutterDart的类方法和对象操作符相关的知识,希望对你有一定的参考价值。
1. 写在前面
在上篇文章中介绍了Dart
中的工厂构造
&单例对象
&初始化列表
,那么现在就继续来学习 Dart
的类方法和对象操作符。
【Flutter】 Android Studio 安装第三方模拟器—网易MuMu
【Flutter】项目运行报错Failed to find Build Tools revision 29.0.2
【Flutter】flutter doctor 报错Android license status unknown. Run `flutter doctor --android-licenses‘
【Flutter】如何新建项目,运行你的第一个 flutter 工程项目
【Flutter】Dart中的var、final 和 const基本使用
【Flutter】Dart的数据类型list&Map(数组和字典)
【Flutter】Dart的方法中的可选参数、方法作为参数传递
【Flutter】Dart的工厂构造方法&单例对象&初始化列表
2. 类方法
我们在学习 OC
的时候,有实例方法和类方法,OC
的类方法以加号“+
”开头,只能用类名调用,对象不能调用,那么 dart
中的类方法该怎么表示呢?
class StaticClass {
// 静态属性
static String name = "reno";
int height = 180;
int count = 0;
//静态方法
static setName(String name1){
name = name1;
return name;
}
//实例方法
int sum(int a) {
return a + count + height;//实例方法可以访问,非静态成员和静态成员
}
实例方法可以访问,非静态成员和静态成员,对象方法在 dart
中就是静态方法,在静态方法中不可以访问静态成员属性,也就是实例成员,否则会报错的。
具体的报错信息,可以查看
Dart Analysis
,如下:
报错❎:error: Instance members can’t be accessed from a static method
错误:无法从静态方法访问实例成员。
那为什么静态方法不能访问实例成员呢?
仔细想一想,静态方法是通过类名调用的,你类都没有哪里来的实例啊,对吧!所以就不让你访问;但是实例方法的调用,实例肯定是存在的,那么访问实例对象就肯定是可以的。
类方法的调用如下:
直接类名调用类方法和静态的属性。
- 常量的定义
static const int id = 30061111111888888;
常量就是在常量区,常量只有一份就必须用static
来修饰。
- 对象操作符
var s;
s = StaticClass();
print(StaticClass.name);
s = null;
print(s?.sum(10));
这里使用?
是防止出错,因为 s
是dynamic
类型,有可能为空的情况,加?
就是说可以为空。
- 对象符合 as
下面这种情况,s
是对象类型,但不知道具体类型,所以调用 sum
方法报错,那么就需要进行类型的转换了。
类型的转换可以使用
as
,这是Swift
一样的意思,如下:
哪里需要类型的转换,就在哪里转换。
- 对象符合 is
还有一种就是 if
判断的形式,判断是否是某一种类型
void main() {
var s = Object();
s = StaticClass();
// print((s as StaticClass).sum(10));
if (s is StaticClass) {
print(s.sum(10));
}
}
还有一种对象的操作符点点(..
),这个就让人很出乎预料了。
打印的居然不是方法调用的结果,而是返回的是类本身,这其实就是链式编程。
链式编程可以一直点下去,只不过dart
这里是两个点,原理都是一样,返回类,继续调用,继续返回继续调用。
3. 写在后面
关注我,更多内容持续输出
🌹 喜欢就点个赞吧👍🌹
🌹 觉得有收获的,可以来一波 收藏+关注,以免你下次找不到我😁🌹
🌹欢迎大家留言交流,批评指正,
转发
请注明出处,谢谢支持!🌹
以上是关于FlutterDart的类方法和对象操作符的主要内容,如果未能解决你的问题,请参考以下文章