Jump to content

Conhecendo os pilares da Orientação a Objetos de uma forma simplificada.


luiz.melo
 Compartilhar

Postagens Recomendadas

Sabemos que, no mundo da programação, a teoria e a prática são coisas bem diferentes. Para entendermos um pouco mais sobre a parte teórica dos pilares da orientação a objetos (OO), vamos falar sobre os 4 principais conceitos desse paradigma de programação.

 

Abstração (Exemplo: Cachorro)


De uma maneira bem resumida, a abstração é uma representação de um objeto do mundo real. Por exemplo, um cachorro. Pense em um cachorro, e como podemos abstraí-lo em uma classe do nosso sistema.
 São três pontos que devem ser levados em consideração:

  • Identidade - Devemos ter em mente qual objeto do mundo real vamos abstrair e mapear dentro do nosso sistema.
  • Propriedades - Quais são as propriedades, as características desse objeto, por exemplo no caso da classe Cachorro, onde temos “Nome”, “Raça”, “Tamanho”, “Pelagem” e outros atributos.
  • Métodos - O que a classe Cachorro deve saber fazer, por exemplo, “Latir()”, “Comer()”, “PedirCarinho()”, “TomarAgua()”.

Com esse pilar, uma classe deve expor para outras classes apenas a ideia geral de uma propriedade ou funcionalidade, sem entrar nos detalhes, e isso pode ser alcançado com o uso de interfaces.

 

Encapsulamento (Exemplo: Televisão)


O encapsulamento se trata de um dos elementos que adicionam segurança à aplicação pelo fato de esconder as propriedades, criando uma espécie de caixa preta. 

Essa atitude evita o acesso direto à propriedade da classe, adicionando uma outra camada de segurança à aplicação.
Como exemplo ao mundo real, quando clicamos no botão ligar da televisão, não precisamos saber o que está acontecendo internamente, a televisão apenas liga. Podemos então dizer que os métodos que ligam a televisão por "trás dos panos" estão encapsulados.

 

Herança (Exemplo: Família)


Nesse pilar, podemos imaginar um cenário onde, em uma família, os pais tenham os olhos azuis (propriedade da cor do olho) e seu filho, por sequência, herdou as características dos pais e nasceu também com os olhos azuis.

A herança é um recurso muito importante para o reuso de código.

Chamamos as classes que transferem comportamentos e atributos de super classes, e chamamos as classes que herdam esses comportamentos e atributos de sub classes. Por isso, super classes normalmente são definições mais genéricas de uma entidade, enquanto que as sub classes são definições mais específicas.

 

Polimorfismo (Exemplo: Mamíferos)


O polimorfismo é a “habilidade” de propriedades de classes derivadas de uma mesma super classe, responderem ao mesmo método, de formas diferentes.

Para uma abstração ao mundo real, podemos pensar no exemplo dos mamíferos, o macaco, a baleia e o homem, ambos são da mesma super classe “Mamíferos”, e ambos possuem um método "Locomover()", porém, cada um se locomove da sua forma, pulando nos galhos, andando e nadando. Podemos entender que ambos se locomovem, mas de maneiras diferentes, cada um com sua peculiaridade.

 

 

Referências:

https://www.devmedia.com.br/os-4-pilares-da-programacao-orientada-a-objetos/9264

https://blog.cod3r.com.br/pilares-de-orientacao-a-objetos/#:~:text=O paradigma orientado a objetos,%2C polimorfismo%2C encapsulamento e abstração

  • Curtir 6
  • Amei 5
Link to comment
Compartilhe em outros sites

Crie uma conta ou entre para comentar 😀

Você precisa ser um membro para deixar um comentário.

Crie a sua conta

Participe da nossa comunidade, crie sua conta.
É bem rápido!

Criar minha conta agora

Entrar

Você já tem uma conta?
Faça o login agora.

Entrar agora
 Compartilhar



Sobre o Fórum

Este é um fórum para todos que fazem parte
do ecossistema de uma Software House!

Bem-vindo(a) ao fórum da Casa do Desenvolvedor, uma comunidade completa, onde desenvolvedores, software houses, profissionais de marketing, experiência e vendas, fornecedores de soluções, aficionados por inovação e tecnologia podem tirar dúvidas, compartilhar novidades e conhecimento, trocar experiências e até postar uns memes que só nós da tecnologia entendemos 😅

Crie agora sua conta e vamos juntos fortalecer
o desenvolvimento de software no Brasil! 🇧🇷

×
×
  • Create New...