一文让你看懂Dart中的类,快速上手!
2023-12-26 09:16:07
Dart中的类
Dart是一门面向对象的语言,类是Dart中最重要的概念之一。类是一种数据类型,它定义了对象的属性和方法。对象是类的实例,它拥有类中定义的属性和方法。
定义一个类
class Person {
String name;
int age;
Person(this.name, this.age);
void printInfo() {
print('姓名:$name,年龄:$age');
}
}
上面的代码定义了一个名为Person
的类,它有两个属性:name
和age
。它还有一个构造函数,它接收两个参数:name
和age
,并将它们分配给相应的属性。它还有一个名为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
,它有两个属性:name
和age
。它还有一个构造函数,它接收两个参数:name
和age
,并将它们分配给相应的属性。它还有一个名为getInfo()
的方法,它返回对象的信息。
使用类之前进行实例化
在使用类之前,需要先实例化它。实例化是指创建类的对象。可以使用new
来实例化类。例如:
Person person = new Person('张三', 20);
上面的代码实例化了一个Person
类的对象,并将它赋值给变量person
。
Dart中的构造函数
构造函数是类的一个特殊方法,它在创建对象时被调用。构造函数可以用来初始化对象的属性。构造函数的名称与类名相同,并且没有返回值类型。例如:
class Person {
String name;
int age;
Person(this.name, this.age);
}
上面的代码定义了一个名为Person
的类,它有两个属性:name
和age
。它有一个构造函数,它接收两个参数:name
和age
,并将它们分配给相应的属性。
使用构造函数初始化值
可以使用构造函数来初始化对象的属性。例如:
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
的类,它有两个属性:name
和age
。它有一个构造函数,它接收两个参数:name
和age
,并将它们分配给相应的属性。
简写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
的类,它有两个属性:name
和age
。它有一个构造函数,它接收两个参数:name
和age
,并将它们分配给相应的属性。
命名构造函数
命名构造函数是类的一种特殊构造函数,它具有一个名称。命名构造函数可以用来创建不同类型的对象。例如:
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
的类,它有两个属性:name
和age
。它有两个构造函数:Person()
和Person.fromJson()
。Person()
构造函数接收两个参数:name
和age
,并将它们分配给相应的属性。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中的类是面向对象编程的基础。类可以用来定义对象,对象可以拥有属性和方法。类可以导出到其他文件中,以便在其他文件中使用。