实例变量
本课属于 Coddy Dart 学习旅程的“面向对象编程”单元。第 7 课,共 110 课。
实例变量是在类内部声明的变量。由该类创建的每个对象都会获得这些变量各自的副本,且与所有其他对象相互独立。
声明实例变量时,需要指定类型,也可以选择设置默认值:
class Student {
String school = 'Dart Academy'; // 有默认值
String name = ''; // 默认值为空字符串
int age = 0; // 默认值为零
}带默认值的变量在每个新对象创建时都会从相同的值开始。像 name 和 age 这样的变量,在你设置它们之前都是空值或 0。
使用带有 this 的方法来设置对象的各项数据:
class Student {
String school = 'Dart Academy';
String name = '';
int age = 0;
void setInfo(String name, int age) {
this.name = name; // this.name = 实例变量
this.age = age; // this.age = 实例变量
}
}创建学生并分配他们的数据:
Student student1 = Student();
Student student2 = Student();
student1.setInfo('Alice', 20);
student2.setInfo('Bob', 22);使用点运算符访问实例变量:
print('${student1.name} is ${student1.age} at ${student1.school}');
print('${student2.name} is ${student2.age} at ${student2.school}');输出:
Alice is 20 at Dart Academy
Bob is 22 at Dart Academy注意,两个对象的 school 相同,因为它有默认值;而 name 和 age 对每个对象来说都不相同,因为它们是通过 setInfo 分别设置的。
挑战
简单完成 student.dart 中的 Student 类:
- 声明一个
String school实例变量,默认值为'Dart Academy' - 声明一个
String name实例变量,默认值为'' - 声明一个
int age实例变量,默认值为0 - 添加一个
setInfo方法,接收String name和int age作为参数,并使用this将它们设置到对象上
driver.dart 文件会通过创建两个学生并打印他们的信息来测试你的类(已锁定)。
亲手试试
import 'student.dart';
void main() {
Student student1 = Student();
Student student2 = Student();
student1.setInfo('Alice', 20);
student2.setInfo('Bob', 22);
print('${student1.name} is ${student1.age} at ${student1.school}');
print('${student2.name} is ${student2.age} at ${student2.school}');
}
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
面向对象编程中的所有课
自己练习: Dart 在线编译器