📜  Flutter 中的构造函数 - Javascript (1)

📅  最后修改于: 2023-12-03 14:41:16.776000             🧑  作者: Mango

Flutter 中的构造函数 - JavaScript

在 Flutter 中,构造函数是一个类用于初始化的方法。类别可以定义一个或多个构造函数。如果没有明确定义构造函数,则默认情况下会提供一个无参构造函数。

默认构造函数

下面是一个简单的类,它包含一个默认构造函数:

class Person {
  String name;
  int age;

  Person(this.name, this.age);

  void printDetails() {
    print('Name: $name, Age: $age');
  }
}

这个类有两个成员变量:nameage,用于存储个人的姓名和年龄。类中的构造函数使用简写语法来初始化变量。

我们可以创建一个 Person 的实例,并打印其详细信息:

void main() {
  var person = Person('John', 30);
  person.printDetails();
}

输出:

Name: John, Age: 30
命名构造函数

Flutter 还允许您定义多个构造函数。可以使用命名构造函数来实现这一点。命名构造函数允许您为构造函数提供不同的函数签名。

例如,下面的类定义包括两个命名构造函数:

class Point {
  double x, y;

  Point(this.x, this.y);

  Point.origin() {
    x = 0;
    y = 0;
  }

  void printDetails() {
    print('x: $x, y: $y');
  }
}

这个类有两个构造函数:PointPoint.originPoint 构造函数用于标准点初始化,而 Point.origin 构造函数将点设置为原点。

我们可以创建一个 Point 实例并输出其详细信息:

void main() {
  var point1 = Point(2, 3);
  point1.printDetails();

  var point2 = Point.origin();
  point2.printDetails();
}

输出:

x: 2.0, y: 3.0
x: 0.0, y: 0.0
常量构造函数

如果您希望创建一个可以作为常量使用的类,则可以使用常量构造函数。常量构造函数必须满足以下两个条件:

  • 所有类成员变量必须是 final。
  • 构造函数体必须为空。

以下是常量构造函数的示例:

class Circle {
  final double radius;

  const Circle(this.radius);

  double get area => radius * radius * 3.14;
}

注意,我们已将 radius 成员变量声明为 final。现在,我们可以在应用程序的任何地方使用常量构造函数,这将返回一个 const 对象。

void main() {
  var circle1 = const Circle(5);
  var circle2 = const Circle(5);

  print(circle1 == circle2); // true
}

输出:

true

常量构造函数返回的是一个 const 对象,所以 circle1circle2 都应该是相同的对象。

总结

Flutter 中的构造函数是一个类用于初始化的方法。类别可以定义一个或多个构造函数。

  • 默认构造函数用于初始化类的实例。
  • 命名构造函数允许您为构造函数提供不同的函数签名。
  • 常量构造函数用于创建可以作为常量使用的类。

以上是 Flutter 中构造函数的介绍。希望本文能够对您学习 Flutter 有所帮助!