【Flutter】Dart中的类和对象

1,875 阅读3分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

本文同时参与「掘力星计划」,赢取创作大礼包,挑战创作激励金。

📝【Flutter】学习养成记,【程序员必备小知识】

📔 今日小知识——【Flutter】Dart中的类和对象!

1. 写在前面

上篇文章中介绍了Dart中的匿名函数闭包,那么现在就继续来学习 Dart 中的对象是如何定义和使用的。

【Flutter】苹果Mac电脑配置flutter开发环境

【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数据类型之num

【Flutter】Dart数据类型之String

【Flutter】Dart的数据类型list&Map(数组和字典)

【Flutter】Dart的方法与箭头函数

【Flutter】Dart的方法中的可选参数、方法作为参数传递

【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 一样都是用点语法。

  • 代码运行结果

运行结果

  1. dart 中默认会生成 getter和 setter 方法
  2. 属性和方法都是通过点语法访问
  3. 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. 写在后面

关注我,更多内容持续输出

🌹 喜欢就点个赞吧👍🌹

🌹 觉得有收获的,可以来一波 收藏+关注,以免你下次找不到我😁🌹

🌹欢迎大家留言交流,批评指正,转发请注明出处,谢谢支持!🌹