返回

一文让你看懂Dart中的类,快速上手!

前端

Dart中的类

Dart是一门面向对象的语言,类是Dart中最重要的概念之一。类是一种数据类型,它定义了对象的属性和方法。对象是类的实例,它拥有类中定义的属性和方法。

定义一个类

class Person {
  String name;
  int age;

  Person(this.name, this.age);

  void printInfo() {
    print('姓名:$name,年龄:$age');
  }
}

上面的代码定义了一个名为Person的类,它有两个属性:nameage。它还有一个构造函数,它接收两个参数:nameage,并将它们分配给相应的属性。它还有一个名为printInfo()的方法,它打印对象的信息。

实现一个简单的类

class Person {
  String name;
  int age;

  Person(this.name, this.age);

  String getInfo() {
    return '姓名:$name,年龄:$age';
  }
}

void main() {
  Person person = Person('张三', 20);
  print(person.getInfo());
}

上面的代码实现了一个简单的类Person,它有两个属性:nameage。它还有一个构造函数,它接收两个参数:nameage,并将它们分配给相应的属性。它还有一个名为getInfo()的方法,它返回对象的信息。

使用类之前进行实例化

在使用类之前,需要先实例化它。实例化是指创建类的对象。可以使用new来实例化类。例如:

Person person = new Person('张三', 20);

上面的代码实例化了一个Person类的对象,并将它赋值给变量person

Dart中的构造函数

构造函数是类的一个特殊方法,它在创建对象时被调用。构造函数可以用来初始化对象的属性。构造函数的名称与类名相同,并且没有返回值类型。例如:

class Person {
  String name;
  int age;

  Person(this.name, this.age);
}

上面的代码定义了一个名为Person的类,它有两个属性:nameage。它有一个构造函数,它接收两个参数:nameage,并将它们分配给相应的属性。

使用构造函数初始化值

可以使用构造函数来初始化对象的属性。例如:

class Person {
  String name;
  int age;

  Person(this.name, this.age);
}

void main() {
  Person person = Person('张三', 20);
  print(person.name); // 张三
  print(person.age); // 20
}

上面的代码定义了一个名为Person的类,它有两个属性:nameage。它有一个构造函数,它接收两个参数:nameage,并将它们分配给相应的属性。

简写Dart中的构造函数

Dart中的构造函数可以简写。例如:

class Person {
  String name;
  int age;

  Person(this.name, this.age);
}

void main() {
  Person person = Person('张三', 20);
  print(person.name); // 张三
  print(person.age); // 20
}

上面的代码定义了一个名为Person的类,它有两个属性:nameage。它有一个构造函数,它接收两个参数:nameage,并将它们分配给相应的属性。

命名构造函数

命名构造函数是类的一种特殊构造函数,它具有一个名称。命名构造函数可以用来创建不同类型的对象。例如:

class Person {
  String name;
  int age;

  Person(this.name, this.age);

  Person.fromJson(Map<String, dynamic> json) {
    name = json['name'];
    age = json['age'];
  }
}

void main() {
  Person person1 = Person('张三', 20);
  print(person1.name); // 张三
  print(person1.age); // 20

  Map<String, dynamic> json = {'name': '李四', 'age': 30};
  Person person2 = Person.fromJson(json);
  print(person2.name); // 李四
  print(person2.age); // 30
}

上面的代码定义了一个名为Person的类,它有两个属性:nameage。它有两个构造函数:Person()Person.fromJson()Person()构造函数接收两个参数:nameage,并将它们分配给相应的属性。Person.fromJson()构造函数接收一个参数:json,并将它转换为一个对象。

将类导出到其他文件中

可以将类导出到其他文件中,以便在其他文件中使用。可以使用export关键字来导出类。例如:

// person.dart
class Person {
  String name;
  int age;

  Person(this.name, this.age);
}

// main.dart
import 'person.dart';

void main() {
  Person person = Person('张三', 20);
  print(person.name); // 张三
  print(person.age); // 20
}

上面的代码将Person类导出了到person.dart文件中,并在main.dart文件中导入了它。

总结

Dart中的类是面向对象编程的基础。类可以用来定义对象,对象可以拥有属性和方法。类可以导出到其他文件中,以便在其他文件中使用。