当前位置:实例文章 » 其他实例» [文章]Dart语法02-类、构造方法、set、get、运算符重载、抽象类、接口、可调用的类、混合mixins

Dart语法02-类、构造方法、set、get、运算符重载、抽象类、接口、可调用的类、混合mixins

发布人:shili8 发布时间:2025-01-08 05:57 阅读次数:0

**Dart语言基础**

### 类在 Dart 中,类是用来定义一个对象的模板。类可以包含属性(变量)和方法(函数)。

dartclass Person {
 String name;
 int age;

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


上面的代码定义了一个 `Person` 类,它有两个属性:`name` 和 `age`,以及一个构造方法来初始化这些属性。

### 构造方法构造方法是用来创建类实例的特殊方法。它可以接受参数,并在实例被创建时执行一些操作。

dartclass Person {
 String name;
 int age;

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

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


上面的代码定义了一个 `Person` 类,它有两个属性:`name` 和 `age`,以及一个构造方法来初始化这些属性。这个构造方法接受 `name` 和 `age` 作为参数,并在实例被创建时执行一些操作。

### set、getset 和 get 是用于访问类属性的方法。

dartclass Person {
 String _name;
 int _age;

 String get name => _name;
 void set name(String value) => _name = value;

 int get age => _age;
 void set age(int value) => _age = value;
}


上面的代码定义了一个 `Person` 类,它有两个属性: `_name` 和 `_age`,以及对应的 set 和 get 方法来访问这些属性。

### 运算符重载运算符重载是指在类中重新定义一些运算符的行为。

dartclass Vector {
 int x;
 int y;

 Vector(this.x, this.y);

 Vector operator +(Vector other) => Vector(x + other.x, y + other.y);
}

void main() {
 var v1 = Vector(2,3);
 var v2 = Vector(4,5);
 var result = v1 + v2;
 print(result); // Output: (6,8)
}


上面的代码定义了一个 `Vector` 类,它有两个属性: `x` 和 `y`,以及一个运算符重载方法来重新定义加法运算的行为。

### 抽象类抽象类是指不能实例化的类,它通常用于定义一些接口或基类。

dartabstract class Shape {
 void draw();
}

class Circle extends Shape {
 @override void draw() => print('Drawing a circle.');
}

class Rectangle extends Shape {
 @override void draw() => print('Drawing a rectangle.');
}


上面的代码定义了一个抽象类 `Shape`,它有一个抽象方法 `draw()`。然后定义了两个子类 `Circle` 和 `Rectangle`,它们分别实现了 `draw()` 方法。

### 接口接口是指一种特殊的抽象类,它通常用于定义一些接口或基类。

dartinterface Shape {
 void draw();
}

class Circle implements Shape {
 @override void draw() => print('Drawing a circle.');
}

class Rectangle implements Shape {
 @override void draw() => print('Drawing a rectangle.');
}


上面的代码定义了一个接口 `Shape`,它有一个抽象方法 `draw()`。然后定义了两个子类 `Circle` 和 `Rectangle`,它们分别实现了 `draw()` 方法。

### 可调用的类可调用的类是指可以像函数一样被调用和返回值的类。

dartclass Calculator {
 int add(int a, int b) => a + b;
}

void main() {
 var calculator = Calculator();
 print(calculator.add(2,3)); // Output:5}


上面的代码定义了一个可调用的类 `Calculator`,它有一个方法 `add()`。然后创建一个实例并调用这个方法。

### 混合(mixins)

混合是指一种特殊的类,它可以被继承和使用。

dartmixin Logger {
 void log(String message) => print(message);
}

class Calculator with Logger {
 int add(int a, int b) => a + b;
}

void main() {
 var calculator = Calculator();
 calculator.log('Calculating...');
 print(calculator.add(2,3)); // Output:5}


上面的代码定义了一个混合 `Logger`,它有一个方法 `log()`。然后定义了一个类 `Calculator`,它继承了 `Logger` 并使用了 `log()` 方法。

以上就是 Dart语言基础的相关内容。

相关标签:python开发语言
其他信息

其他资源

Top