【Flutter】Dart中的类和对象
📝【Flutter】学习养成记,【程序员必备小知识】
📔 今日小知识——【Flutter】Dart
中的类和对象!
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的方法中的可选参数、方法作为参数传递
2. 类
使用
class
关键字来声明一个类,这和 Swift 很像,可以使用new
关键字来调用构造函数
,所有的对象
都继承Object
类,这点和OC
有点像。
2.1 定义一个类
- 定义一个类
class JPPerson {
// 属性
String name = "reno";
int? age;
//方法
void info() {
print("name:$name age:$age");
}
}
如果属性不赋默认值的话,可以使用?
表示可以为空,类型于 Swift
中的可选 option
类型。
2.2 类的初始化
- 类的初始化
void main() {
JPPerson person = JPPerson();
person.age = 18;
person.info();
}
JPPerson
类并没有写构造方法,但是类是默认有构造方法的。
2.3 方法和属性
属性和方法的调用,和Swift 一样都是用点语法。
- 代码运行结果
- dart 中默认会生成 getter和 setter 方法
- 属性和方法都是通过点语法访问
- final 修饰的属性必须定义初始值
// final String nationality = "中国";
final String nationality;
String name = "reno";
int? age;
JPPerson(this.age,this.nationality);//构造方法
final
修饰的如果不给默认值,可以构造方法中写入,初始化类对象的时候赋值就可以了。
2.4 方法不可以重载
- dart 中方法不可以重载
方法不可以重载,哪怕是参数不一样都不行的,因为方法名字就是唯一的标示,不能相同。
在 dart
中是没有.h
和.m
文件的,那么怎么区分哪些是私有的,哪些是可以外部使用的呢?
2.5 私有属性和方法
在 dart
中没有什么私有的关键字,直接使用下划线前缀就是私有的了,外部不可以访问,那么现在新建一个类文件,注意不要使用驼峰命名,否则会警告⚠️,jp_person.dart
代码如下。
class JPPerson {
final String nationality;
String? _name;
int? height;
int? _age;
JPPerson(this._age,this.nationality,this.height);//构造方法
void _info() {
print("name:$_name age:$_age");
}
void printP(){
_info();
print("height:$height");
}
}
私有的是访问不了,会报错,如下:
私有属性和方法不能访问- 没有加下划线的开头的就是可以外部访问的
2.6 全局方法
- 同一个类文件中的全局方法,可以访问类的私有的属性和方法,如下:
3. 写在后面
关注我,更多内容持续输出
🌹 喜欢就点个赞吧👍🌹
🌹 觉得有收获的,可以来一波 收藏+关注,以免你下次找不到我😁🌹
🌹欢迎大家留言交流,批评指正,
转发
请注明出处,谢谢支持!🌹