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 ou um plano para um objeto, exemplificando seria uma planta para se construir uma casa. É um arquivo onde você concentra todas as características daquele objeto. No exemplo a seguir iremos criar uma classe chamada pessoa. Veja como se estrutura uma classe class NomeDaClasse {}
:
class Pessoa {
}
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:
Pessoa pessoa1 = new Pessoa();
Aplicando-a:
class Pessoa {
String nome;
int idade;
double altura;
void dormir(){
print("$nome está dormindo");
}
}
void main(){
// criando um objeto, pode começar com var, se quiser
// 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.
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).
OBS. caso queira colocar uma atributo privado, basta colocar um underline antes do atributo que deseja ser privado, exemplo,
_altura = 1.70;
Fica claro que o código fica muito estruturado, no próximo artigo iremos apreder sobre os construtores, clique aqui para iniciar.