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