1
resposta

Documentação classe static do Dart

Bom dia,

No link para a documentação da classe static do Dart tem o seguinte código:

import 'dart:math';

class Point {
  double x, y;
  Point(this.x, this.y);

  static double distanceBetween(Point a, Point b) {
    var dx = a.x - b.x;
    var dy = a.y - b.y;
    return sqrt(dx * dx + dy * dy);
  }
}

void main() {
  var a = Point(2, 2);
  var b = Point(4, 4);
  var distance = Point.distanceBetween(a, b);
  assert(2.8 < distance && distance < 2.9);
  print(distance);
}

Não entendi a seguinte parte, isso é o mesmo que instanciar?

  var a = Point(2, 2);
  var b = Point(4, 4);

Poderiam me orientar onde encontro, no curso, sobre isso para eu aprender?

Att, Alvaro

1 resposta

Olá Alvaro!

A parte do código que você mencionou não é exatamente a mesma coisa que instanciar um objeto. Na verdade, o que está acontecendo ali é a criação de duas variáveis a e b que são do tipo Point, que é a classe definida anteriormente.

Essas variáveis estão sendo inicializadas com os valores (2, 2) e (4, 4), respectivamente. Ou seja, estamos criando duas instâncias da classe Point e atribuindo essas instâncias às variáveis a e b.

A diferença entre criar uma instância de uma classe e usar um método estático é que, ao criar uma instância, você está criando um objeto que possui suas próprias propriedades e comportamentos. Já ao usar um método estático, você está chamando um método diretamente na classe, sem precisar criar um objeto.

No exemplo que você mostrou, o método distanceBetween é um método estático da classe Point. Isso significa que você pode chamá-lo diretamente na classe, sem precisar criar uma instância dela. No caso do código que você mostrou, o método distanceBetween está sendo chamado passando as instâncias a e b como parâmetros.

Se você quiser aprender mais sobre métodos estáticos no Dart, recomendo que você consulte a documentação oficial da linguagem. Lá você encontrará mais informações e exemplos sobre como usar métodos estáticos. Aqui está o link para a documentação.

Espero ter ajudado e bons estudos!