掌握 Dart 的面向对象基础

Posted 熊喵先生

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了掌握 Dart 的面向对象基础相关的知识,希望对你有一定的参考价值。

我们知道在 Dart 中一切都是对象,所以面向对象在 Dart 开发中是非常重要的。此外它还和其他有点不一样的地方,比如多继承 mixin、构造器不能被重载、setter 和 getter 的访问器函数等。

1. 属性访问器(accessor)函数 setter 和 getter

在 Dart 类的属性中有一种为了方便访问它的值特殊函数,那就是 setter、getter 属性访问器函数。

实际上,在 Dart 中每个实例属性始终有与之对应的 setter、getter 函数(若是 final 修饰只读属性只有 getter 函数,而可变属性则有 setter、getter 两种函数)。而在给实例属性赋值或获取值时,实际上内部都是对 setter 和 getter 函数的调用。

1.1 属性访问器函数 setter

setter 函数名前面添加前缀 set,并只接收一个参数。setter 调用语法于传统的变量赋值是一样的。如果一个实例属性是可变的,那么一个 setter 属性访问器函数就会为它自动定义,所有实例属性的赋值实际上都是对 setter 函数的调用。这一点和 Kotlin 中的 setter、getter 非常相似。

class Rectangle 
  num left, top, width, height;

  Rectangle(this.left, this.top, this.width, this.height);
  set right(num value) => left = value - width;//使用 set 作为前缀,只接收一个参数 value
  set bottom(num value) => top = value - height;//使用 set 作为前缀,只接收一个参数 value


main() 

以上是关于掌握 Dart 的面向对象基础的主要内容,如果未能解决你的问题,请参考以下文章

php面向对象基础——概念

Dart语法篇之面向对象继承和Mixins

dart学习-- Dart之基础语法

Dart语法篇之面向对象基础

Flutter入门-Dart面向对象原理

深入理解 Dart 中的继承和 Minxins