Já conversamos sobre Orientação a Objetos aqui. Mas sabia que não basta criarmos classes, propriedades e métodos para programarmos orientado a objetos?
Nesse vídeo eu vou te mostrar que as linguagens de programação devem suportar alguns princípios para serem considerados orientados a objetos.
Vamos conversar sobre os 4 pilares da programação orientada a objetos, os pilares da orientação a objetos.
Pilares Da Orientação a Objetos
O paradigma da orientação a objetos conta com 4 princípios que devem estar presentes nas linguagens de programação, para que elas sejam consideradas orientadas a objetos.
Como disse, não basta ser possível criar classes e objetos para que a linguagem de programação seja orientada a objetos.
Mais conhecidos como pilares, esses 4 princípios definem a orientação a objetos. Esses 4 pilares são: abstração, encapsulamento, herança e polimorfismo.
Vamos ver um pouco mais dos pilares da orientação a objetos?
Abstração
Abstração, se consultarmos um dicionário, significa “Ação de abstrair, de analisar isoladamente um aspecto, contido num todo, sem ter em consideração sua relação com a realidade.”.
Isso quer dizer que devemos abstrair o conceito do mundo real.
Esse pilar diz que devemos modelar o objeto real para um objeto do sistema. Não necessariamente precisamos incluir no objeto tudo que o objeto real tem ou faz.
Devemos nos concentrar somente no que precisamos para o funcionamento do sistema.
Encapsulamento
Encapsulamento também é exatamente o que o nome significa: colocar em uma cápsula.
E esta cápsula é opaca, ou seja, não sabemos o que tem dentro nem como funciona.
Como dizia um ex-chefe meu: “entra porco, sai linguiça”. E como essa linguiça é feita não nos diz respeito.
O encapsulamento é uma caixa-preta, não temos acesso ao que acontece dentro dele.
Fazendo uma analogia com o mundo real, imagine a TV da sua sala de estar. Ao clicar no botão “ligar”, a TV entra em funcionamento. Para você, tampouco importa como isso é feito. Você só precisa saber que ao pressionar o botão a TV liga.
No código é a mesma coisa. Usamos um método da classe, mas não vemos o seu funcionamento. Imagina uma classe Calculadora com o método Multiplicar(x, y) que recebe dois parâmetros (os números a serem multiplicados) e retorna o resultado.
Para nós não interessa se o método utiliza uma multiplicação ou soma o primeiro parâmetro o número de vezes indicado pelo segundo parâmetro.
Herança
O que é herança? Algo que recebemos de nossos antepassados, certo?
E um dos pilares da orientação a objetos é exatamente o mesmo princípio.
Com as classes de nosso código temos um comportamento parecido.
Uma classe pode herdar todas as características de outra classe. Assim, uma das vantagens da programação orientada a objetos pode ser aplicada totalmente: o reuso de código.
Ao invés de criar uma nova classe e copiar todo o código que precisamos de outra classe, basta dizer que esta nova classe é herdeira da outra.
Desta forma, não precisamos codificar tudo novamente. As características da outra classe ficam acessíveis nesta nova classe.
Polimorfismo
A capacidade do polimorfismo vem diretamente do pilar anterior, a herança.
Imagine que herdamos (geneticamente) as características dos nossos pais. Porém, somos parecidos, mas não somos uma cópia xerox dos nossos pais.
Algumas características nossas são únicas, e é isso que nos fazem seres humanos únicos.
Com o código orientado a objetos é a mesma coisa. As classes não precisam ser iguais.
Afinal, se fossem iguais não haveria necessidade de criar uma nova classe, certo?
Então podemos ter determinados métodos que, apesar de possuírem o mesmo nome, se comportam de maneira diferente.
Palavras Finais
Demos uma passada rápida nos pilares da orientação a objetos.
Tentei ao máximo me concentrar nos conceitos destes pilares para facilitar o seu entendimento.
Talvez não tenha conseguido virar a chave aí na sua cabeça, por isso vou te pedir: se você não conseguiu entender o conceito da coisa, comenta aí embaixo.
Dependendo dos comentários eu vou reformular meus argumentos e tentar explicar novamente estes pilares, ok?
Lembrando que meu método de ensino prega o estudo dos fundamentos, ou seja, não adianta começar a ver código se você não entendeu o conceito, o porquê da coisa.
Meu e-book Como Aprender a Programar do Absoluto Zero está GRATUITO por tempo limitado!
Olha o link: 👉🏼 http://celsokitamura.com.br/como-aprender-a-programar
Bora aprender a programar!