Se você está começando agora na programação, é bem provável que já tenha se deparado com o conceito de Orientação a Objetos e ficado totalmente perdido, sem entender direito o que é ou por onde começar, né?
E não é por menos! A Programação Orientada a Objetos (POO) pode realmente parecer um pouco complicada no início. A boa notícia é que esse é um dos modelos de programação mais utilizados, especialmente quando queremos criar código reutilizável e bem organizado.
Com a POO, conseguimos estruturar nosso código de forma que ele seja mais fácil de entender, manter e expandir, o que facilita e muito nosso trabalho no dia a dia como desenvolvedores.
O que é Programação Orientada a Objetos?
Antes de tudo, precisamos entender o que é essa tal de POO.
De maneira geral, é um modelo de programação que usa classes para definir o que e como nossos objetos vão ser ou fazer.
Vamos imaginar que queremos criar uma classe que represente o seu gatinho.
Primeiro, a gente começa pensando no que o seu gato tem:
class Cat {
String name; // Tem nome
String breed; // Tem raça
double weight; // Tem peso
int age; // Tem idade
// Construtor
Cat({
required this.name,
required this.breed,
required this.weight,
required this.age,
});
}
Opa, pera... o que é um construtor?
Um construtor é como se fosse o "formulário de cadastro" de um objeto.
Quando você cria um novo gato com Cat(...)
, é o construtor que recebe as informações necessárias pra esse gato "nascer" com nome, raça, peso e idade.
No nosso exemplo:
Cat({
required this.name,
required this.breed,
required this.weight,
required this.age,
});
Esse trecho basicamente diz:
Pra criar um gato, você precisa me passar o nome, a raça, o peso e a idade. Sem isso, nada feito!
Pronto! Agora o Dart consegue criar um objeto Cat
com todas essas infos.
E o que o seu gatinho faz?
Agora podemos pensar nos comportamentos do seu gato — ou seja, as ações que ele realiza:
class Cat {
String name;
String breed;
double weight;
int age;
Cat({
required this.name,
required this.breed,
required this.weight,
required this.age,
});
// Ele mia
void meow() {
print('Meoooooooow!');
}
// Ele faz xixi
void pee() {
print('🐈🚽');
}
// Ele dorme
void sleep() {
print('🐈💤');
}
}
Usando a classe na prática
Beleza! Temos nossa classe Cat
pronta. E agora? Como a gente usa isso?
Simples:
void main() {
var cat = Cat(
name: 'Garfield',
breed: 'Persian',
weight: 6.5,
age: 5,
);
cat.meow();
}
Saída no terminal:
Meoooooooow!