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语言基础的相关内容。

