ASSIMILAÇÕES PARA COMPREENDER POO
- #JavaScript
- #POO
O FAMOSO POO?!
Sei que assim como eu, muitas pessoas lutam para compreender os conceitos iniciais do POO, e para ser sincero logo de início, POO realmente não é um assunto simples e por isso não acredite que em algum momento mágico você vai encontrar um conteúdo ou uma vídeo aula que vão abrir seus olhos do conhecimento, porque não vão, você vai ter que quebra a cabeça, praticar e praticar... e eu me incluo nisso, eu não tenho nem a metade do conhecimento necessário para dominar POO, mas quero trazer aqui algo que me ajudou a sair da estaca zero.
UM OBJETO?
De forma clara, é importante tratarmos um objeto com um objeto na sua forma literal. Ou seja quando estamos criando um objeto no código, estamos literalmente atribuindo valores a ele, assim com a fabricação de uma Tv por exemplo, onde temos, que no processo de fabricação atribuir quantas polegada ela vai ter, qual sua marca, sua cor, o tipo do seu display entre outras características.
const tv = {
marca: 'TCL',
polegadas: 42,
cor: 'preta',
display: 'FullHD'
};
console.log(tv);
O QUE É ESSA TAL DE CLASS?
Essa daí também costuma dar uma dorzinha de cabeça, mas vamos pensar da seguinte forma, uma classe(class) é como se fosse um manual de instruções para a fabricação desse objeto, desse modo, as Tv's como citadas no nosso exemplo anterior seguirão um mesmo padrão de especificações e requisitos necessários na hora da produção, assim reduzindo a possibilidade de erros na hora da sua fabricação, ou na construção de objetos no caso das linhas de códigos.
Só que ainda falta uma coisa, se a gente parar para pensar só um pouquinho nem todo mundo sabe construir uma Tv né? Então é aí que entra o famoso constructor, que tem a mesma função de alguém que trabalha em uma fábrica de construções de Tv, que é construir, ou seja, o constructor vai construir literalmente o nosso objeto. Então juntamos o Class que é o nosso manual, com o Constructor que vai pegar esse manual e construir o objeto de acordo as características que passarmos(Instâncias).
/* Manual de construção do nosso Objeto ou Tv */
class Tv {
marca;
polegadas;
cor;
display;
/* Especialista que vai construir nosso Objeto ou Tv */
constructor (marca, polegada, cor, display) {
this.marca = marca;
this.polegadas = polegada;
this.cor = cor;
this.display = display;
}
}
/* Características(Instâncias) que queresmos no Objeto ou Tv */
const tv1 = new Tv('TCL', 42, 'preta', 'FullHD');
console.log(tv1);
const tv2 = new Tv('LG', 52, 'prata', 'HD');
console.log(tv2);
EU SEI QUE NÃO PARA POR Aí!!! E OS MÉTODOS?
Bom, não podemos finalizar sem eles né, os métodos, eles que costuma dinamizar a manipulação dos requisitos de um objeto. Para compreender essas belezuras vamos pensar neles como se fossem funções/funcionalidades da nossa Tv, o que não deixa de ser verdade, já que de forma muito simplória "os métodos são Funções dentro de uma Class", e uma dessas funções retornar uma lista com todas as características da nossa Tv, já que em um cenário hipotético perdemos o manual e precisamos saber dessas características.
/* Manual de construção do nosso Objeto ou Tv */
class Tv {
marca;
polegadas;
cor;
display;
/* Especialista que vai construir nosso Objeto ou Tv */
constructor (marca, polegada, cor, display) {
this.marca = marca;
this.polegadas = polegada;
this.cor = cor;
this.display = display;
}
/* Método que retorna nosso lista com as características da nosso Objeto ou Tv */
mostrarCaracteristicas () {
console.log(`CARACTERÍSICAS DA TV\n\nMarca:${this.marca}\nPolegadas:${this.polegadas}\nCor:${this.cor}\nDisplay:${this.display}`);
}
}
/* Características(Instâncias) que queresmos no Objeto ou Tv */
const tv1 = new Tv('TCL', 42, 'preta', 'FullHD');
/* Chamando a função da lista de características */
tv1.mostrarCaracteristicas();
De forma geral essas são algumas nas assimilações que fiz para compreender os requisitos mínimos e necessários para se ter um base fundada na POO, mas existem detalhes e muitos outros aspectos que sei que passaram em branco ou de forma muito superficial, já que o intuito foi apenas trazer os conceitos iniciais do POO, então vamos buscar compreender cada vez mais esse mundinho do POO, e se poder ajudar ou tirar algum dúvida que esteja ao meu alcance estarei aqui... E é bom lembra que sempre tem alguém ao lado ou um conteúdo de qualidade que vai te auxiliar nesse processo, não te entregar uma receita mágica, mas te auxiliar, lembre disso! O lema é praticar, praticar e praticar.