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

Diego Dias
Flutter Brasil
Published in
2 min readDec 1, 2021

CLASSES

É um modelo ou um plano para um objeto, ou seja, exemplificando seria uma planta para se construir uma casa. No exemplo a seguir iremos criar uma classe chamada pessoa. Para isso, nós começamos com class + o nome da classe.

class Pessoa {
}
void main(){
}

ESTRUTURA DAS CLASSES

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 {
// atributos
String nome;
int idade;
double altura;
}

Métodos (Funções)

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 {
// atributos
String nome;
int idade;
double altura;
// métodos
void dormir(){
print("$nome está dormindo");
}
}

OBS. Na Aula anterior, sobre funções, nós aprendemos que void é uma função que não retorna nada para quem a requisita.

Objetos

Podemos criar objetos por meio desta classe, ou seja, declará-los ou instanciar nossas classes, portanto, hipoteticamente falando seria “criar as pessoas”. Para instanciá-las, fazemos da seguinte forma:

class Pessoa {
String nome;
int idade;
double altura;
void dormir(){
print("$nome está dormindo");
}
}
void main(){
// criando um objeto, pode come;car com ver
// aqui instanciamos nossa pessoa
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. Se dermos um print nessa pessoa1, irá aparecer "Instance of 'Pessoa'", ou seja, quer dizer que agora o pessoa1 é uma instância da classe Pessoa.

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();
// acessando os atributos
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).

Caso queira colocar uma atributo privado, basta colocar um underline antes do atributo que deseja ser privado, exemplo, _altura = 1.70;

--

--