返回

Dart 基础:探索类和对象

前端

类和对象:Dart 编程的基石

在 Dart 编程语言中,类和对象是两大基石。它们共同构建了程序的蓝图,为开发者提供了组织和重用代码的强大工具。

认识类

类可以理解为一个模板,定义了对象的行为和属性。它就好比一个设计图,规定了房屋的结构、房间布局和材料。同样,类也规定了对象的特性和功能。

实例化对象

对象是类的具体化,就像根据设计图建造的房屋。它们拥有类中定义的所有属性和行为,但具有各自的唯一值。就房屋而言,对象可以是不同的公寓或独立屋,虽然它们遵循相同的蓝图,但内部布局和装饰可能各不相同。

访问权限控制

Dart 中的类成员可以具有不同的访问权限,就像房屋的不同房间可以对不同的人开放或关闭一样。有三种访问权限级别:

  • public: 可以被任何代码访问
  • private: 只能被同一个类中的代码访问
  • protected: 只能被同一个类或其子类中的代码访问

默认情况下,类成员是 public 的。但可以通过使用 publicprivateprotected 来指定访问权限,就像设置不同的门锁来控制房间的出入一样。

构造函数:对象的诞生

构造函数是用来初始化对象的函数,就像房屋建造的开工仪式。构造函数的名称必须与类的名称相同,就像房屋必须有一个特定的地址。构造函数可以接受参数,这些参数就像房屋建造所需的材料和设备。例如,一个 Person 类的构造函数可能需要 nameage 参数,就像建造一所房屋需要指定卧室数量和厨房面积一样。

代码示例:创建一个 Person 对象

class Person {
  String name;
  int age;

  Person(this.name, this.age);

  void speak() {
    print('Hello, my name is $name and I am $age years old.');
  }
}

main() {
  var person = new Person('John', 20);
  person.speak();
}

在这个例子中,Person 类定义了一个对象蓝图,其中包含 nameage 属性以及一个 speak() 方法。我们创建了一个名为 personPerson 对象,并通过传递 nameage 参数来初始化它的属性。然后,我们调用 speak() 方法来输出对象的详细信息,就像在房间里与人交谈一样。

类和对象的优势

  • 组织性: 类和对象可以帮助我们组织代码,就像不同房间将房屋的不同功能分隔开来一样。
  • 可重用性: 类可以多次实例化,创建多个具有相同属性和行为的对象,就像建造多个具有相同蓝图的房屋一样。
  • 灵活性: 对象可以根据需要进行修改,就像房屋可以进行改造或扩建一样。
  • 可扩展性: 类可以扩展其他类,继承它们的属性和行为,就像在现有房屋的基础上增建新房间一样。

常见问题解答

1. 什么是类和对象的实际应用?

类和对象用于创建真实世界的实体,如汽车、员工和订单。通过创建类的蓝图和实例化对象,我们可以管理这些实体的数据和行为。

2. 如何在 Dart 中定义一个类?

使用 class 关键字,后面跟类名和大括号,里面包含类的成员变量和方法。

3. 什么时候使用 private 访问权限?

当我们想要隐藏类的实现细节或防止外部代码意外修改成员时。

4. 构造函数有何作用?

构造函数用来初始化对象的属性,为其分配初始值。

5. Dart 中的继承是如何工作的?

继承允许一个类(子类)从另一个类(父类)继承属性和行为,就像新房间继承了主房屋的结构和基础设施一样。