Introdução à Programação Orientada a Objetos com Dart (usando gatinhos
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('

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('