3.1. Orientação à Objetos em Dart: classes, atributos e objetos

Orientação à Objetos serve para organizar e simplificar a nossa programação.

CLASSES

É um modelo para um objeto, ou seja, exemplificando seria uma planta para se construir uma casa. No exemplo a seguir iremos criar uma classe chamada pessoa.

class Pessoa {
}

void main(){
}

ATRIBUTOS

Dentre dessa classe pessoa temos os atributos desta classe: nome, idade e altura. Esses atributos são as informações que o nosso objeto irá armazenar.

class Pessoa {
  String nome;
  int idade;
  double altura;
}

MÉTODOS

Agora que o objeto já está definido vamos ver o que uma pessoa é capaz de fazer, para definir suas ações as fazemos por meio de funções void que chamamos, quando estão dentro das classes, de métodos:

class Pessoa {
  String nome;
  int idade;
  double altura; 

  void dormir(){
    print("$nome está dormindo");
  }
}

OBJETOS

Podemos criar objetos por meio desta classe, ou seja declará-los, portanto, realmente "criar as pessoas".

class Pessoa {
  String nome;
  int idade;
  double altura; 

  void dormir(){
    print("$nome está dormindo");
  }
}

void main(){
  Pessoa pessoa1 = new Pessoa(); // em Dart o new é opcional, pode-se colocar ou não, na dúvida coloca para ficar claro que está criando uma nova pessoa
}

Primeiro criamos o tipo, ou seja, é do tipo "Pessoa", depois o nome "pessoa1", depois recebe um novo objeto do tipo Pessoa(); que seria um instanciamento de um objeto (é exatamente igual a declarar uma variável String algumacoisa = ""). Resumindo estamos criando a pessoa1.

Desta forma, já que criamos uma pessoa (pessoa1) vamos declarar os dados desta pessoa.

class Pessoa {
  String nome;
  int idade;
  double altura; 

  void dormir(){
    print("$nome está dormindo");
  }
}

void main(){
  Pessoa pessoa1 = new Pessoa();
  pessoa1.nome = "Diego";
  pessoa1.altura = 1.70;
  pessoa1.idade = 30;

  print(pessoa1.nome);
}

Coloca-se o "." para acessar tal atributo. Pode-se, portanto, criar outra pessoa (pessoa2) que será criada da mesma fonte, mas com dados diferentes.

CHAMANDO UM MÉTODO

Para chamar um métoto utilizamos também o "." e depois o nome do método, conforme abaixo:

class Pessoa {
  String nome;
  int idade;
  double altura; 

  void dormir(){
    print("$nome está dormindo");
  }

  void aniver(){
    idade++;
  }
}

void main(){
  Pessoa pessoa1 = new Pessoa();
  pessoa1.nome = "Diego";
  pessoa1.altura = 1.70;
  pessoa1.idade = 30;

  print(pessoa1.nome);
  pessoa1.aniver();
  print(pessoa1.idade);
}

No comando acima irá retornar a idade conforme a função aniver();, ou seja irá retornar o número 31 (30+1).

Fica claro que o código fica muito estruturado, no próximo artigo iremos apreder sobre os construtores, clique aqui para iniciar.


Todo os artigos postados destas séries Dart foram baseados no https://www.udemy.com/curso-completo-flutter-app-android-ios/ e com alguns comentários retirados do livro "Dart: Up and Running by Kathy Walrath and Seth Ladd". Recomendo a todos a fazer o curso, pois estou aprendendo muito com este curso.