Article image
Willian Coelho
Willian Coelho22/08/2023 12:10
Compartilhe

Programação Orientada a Objetos para iniciantes - Analogia com a vida real

    Abstração, encapsulamento, polimorfismo... tudo pode parecer muito difícil no início, e realmente é dificil absorver de primeira o que cada conceito significa. Quando trabalhamos com linguagens orientadas a objetos, como Java e C#, esses conceitos são essenciais para o uso correto da linguagem. Nesse artigo eu vou tentar simplificar os 4 pilares desse paradigma de programação fazendo uma analogia com alguns objetos da vida real.

    Herança

    Imagine que você tenha que criar uma classe para representar um cachorro e um humano. Você poderia criar uma classe para cada e adicionar suas características, como andar, correr, pular... mas você vai adicionar isso em cada uma das classes? Se tivesse que ser criado uma classe Leão por exemplo, teria que adicionar cada característica novamente? Bom, você até pode, mas acredito que você não quer ter todo esse trabalho. É aí que a herança de classes entra em jogo. Todos os 3 podem herdar características de uma classe pai, Mamífero por exemplo. E podemos ter ainda uma classe acima: Animal. Daí cada grupo de animais como mamíferos, aves e répteis herdariam certas características da classe superior Animal, e teriam as suas próprias.

    Abstração

    Um celular: ele pode fazer muitas coisas, como fazer uma ligação, tirar fotos e jogar jogos. Ele não nos mostra o processo de como isso é feito. Ele abstrai a implementação dessas funcionalidades, para que a possamos focar em tirar a foto ou ligar para alguém. Uma classe que usa um método externo não deve se atentar aos detalhes da implementação desse método, deve apenas usá-lo.

    Encapsulamento

    Encapsulamento é o conceito de proteger os atributos de um objeto, removendo o acesso externo à propriedades que não deveriam ser expostas. Portanto, devemos sempre tornar privado atributos e métodos que não precisem ser acessados do lado de fora do objeto, evitando o "vazamento de escopo".

    Uma empresa: ela pode ter vários departamentos: o departamento de RH, departamento de marketing e outro de finanças. Todos esses departamentos formam uma empresa. O departamento de RH e de finanças, que lidam com informações sensíveis que não precisam ser conhecidos externamente, são comparáveis aos métodos e atributos privados de uma classe. Enquanto o de marketing, que precisa promover e comunicar a imagem da empresa, são mais comparáveis aos métodos e atributos públicos.

    Polimorfismo

    Polimorfismo significa "ocorrer de diferentes formas". Ex: Uma classe Aparelho define um método tocarMusica(). A partir daí, cada classe que extender Aparelho (herança), pode definir sua própria implementação do método. Ou seja, cada classe "filha" implementa como tocarMusica() deve funcionar para si mesma.

    Uma mulher: ela pode ser muitas coisas: uma mãe, uma estudante, uma escritora. Uma mulher pode assumir diferentes papéis

    Conclusão

    Espero que isso tenha simplificado os 4 pilares desse tão falado paradigma. Entendê-los ajuda a tirar o maior potencial das linguagens orientadas a objetos e o levam a escrever um código mais limpo e robusto!

    Compartilhe
    Comentários (2)

    GL

    George Lima - 24/08/2023 02:21

    👍

    Gustavo Neves
    Gustavo Neves - 22/08/2023 12:31

    No trecho "Polimorfismo significa 'assumir várias formas'.", embora seja uma definição válida, é necessário enfatizar que o polimorfismo envolve a capacidade de tratar objetos de classes diferentes de maneira uniforme, desde que essas classes implementem a mesma interface ou herdem da mesma classe base. Parabéns pelo artigo!