📜  Dart编程-类(1)

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

Dart编程-类

Dart是一种先进的面向对象编程语言,它支持所有常见的面向对象编程概念,例如继承,多态,封装,抽象类和接口。在Dart中,类是面向对象编程的核心概念之一。本文将介绍Dart中的类,包括类的定义,实例化、继承及其它相关的概念。

类的定义

在Dart中,可以使用 class 关键字来定义类。类由以下元素组成:

  1. 类名
  2. 类的成员变量
  3. 类的构造函数
  4. 类的方法

下面是一个最简单的Dart类的例子:

class Person {
  String name;
  int age;
  
  void sayHello() {
    print('Hello!');
  }
}

在上面的代码中,我们定义了一个 Person 类,它有两个成员变量 nameage,以及一个方法 sayHello

成员变量

类的成员变量是该类的一个属性,通过类的实例对象可以访问。在Dart中,成员变量使用关键字 varfinalconst 声明。

例如,下面的代码中 nameage 是类 Person 的成员变量:

class Person {
  String name;
  int age;
}

在Dart中,如果一个成员变量只有 get 方法,而没有 set 方法,则它是只读的。这种情况下在声明变量时需要使用关键字 finalconst

构造函数

在Dart中,每个类都有至少一个构造函数。如果没有显式声明构造函数,则默认构造函数和该类名称相同。如果你需要自定义构造函数,则可以使用类名称和圆括号声明。

下面是一个自定义构造函数的例子:

class Person {
  String name;
  int age;
  
  Person(String name, int age) {
    this.name = name;
    this.age = age;
  }
}

在上面的代码中,我们声明了一个自定义构造函数,它需要传入两个参数 nameage,并使用 this 关键字引用当前实例的变量。

请注意,构造函数的名称必须与类名相同,不像方法可以有任意名称。如果你需要有多个构造函数,则可以使用 factory 关键字。

方法

在Dart中,方法是一个具有一系列操作的函数。类的方法与成员变量一样,通过类的实例对象调用。可以在类的主体中声明方法。

以下是一个简单的类展示如何声明和使用方法:

class Person {
  String name;
  int age;
  
  void sayHello() {
    print('Hello!');
  }
  
  void sayNameAndAge() {
    print('My name is $name, and I am $age years old.');
  }
}

void main() {
  var person = Person();
  person.name = 'Tom';
  person.age = 21;
  person.sayHello();
  person.sayNameAndAge();
}

在上述代码中,我们创建了一个 Person 类对象,并使用它的方法输出了一些信息。

实例化

在Dart中,当我们要使用类时,需要创建类的实例对象。可以使用 new关键字来创建实例。

例如,在上面的示例中,我们使用以下代码来创建一个 Person 的实例:

var person = Person();

这将创建一个变量 person 并初始化为一个 Person 类的实例对象。可以使用在构造函数中设置的初始值、setter以及方法对类实例的属性进行修改。

继承

Dart中的继承和其他面向对象语言非常相似。可以使用 extends 关键字来实现继承。

以下是一个简单的示例:

class Animal {
  void speak() {
    print('Animal is speaking!');
  }
}

class Dog extends Animal {
  void speak() {
    print('Dog is barking!');
  }
}

void main() {
  var animal = Animal();
  var dog = Dog();
  
  animal.speak();
  dog.speak();
}

在上述代码中,我们创建了两个类 AnimalDogDog 继承了 Animal。使用 extends 关键字使 Dog 类继承了 Animal 类的所有属性和方法,包括 speak() 方法。Dog类还可以重新定义 speak() 方法以便自定义行为。

总结

到此,我们已经介绍了Dart类的基本概念,包括成员变量、方法、构造函数、实例化和继承等内容。如果你对Dart类有更多兴趣,请参考官方文档以获取更多信息。

class Person {
  String name;
  int age;
  
  void sayHello() {
    print('Hello!');
  }
  
  Person(String name, int age) {
    this.name = name;
    this.age = age;
  }
}

void main() {
  var person = Person('Tom', 21);
  person.sayHello();
  print('My name is ${person.name}, and I am ${person.age} years old.');
}