image

Acesse bootcamps ilimitados e +650 cursos pra sempre

60
%OFF
Article image
Caio Rodrigues
Caio Rodrigues21/03/2025 00:06
Compartilhe
Microsoft Certification Challenge #3 DP-100Recomendados para vocêMicrosoft Certification Challenge #3 DP-100

POO – Um Paradigma Tão Complexo Assim?

    Ultimamente, tenho me empenhado em focar mais em projetos práticos. Mesmo que não sejam algo disruptivo que vá mudar o mundo ou ser vendidos por milhões, são desenvolvimentos simples que, aos poucos, me ajudam a transformar minhas ideias em código, aplicando o conhecimento adquirido em cursos e vídeos que já assisti.

    Enquanto passava por esse processo, lembrei do início de tudo: quando fui apresentado à programação orientada a objetos (POO) na faculdade. Confesso que, no começo, foi algo totalmente confuso. A ideia de "pegar algo do mundo real e transformá-lo em um objeto" parecia abstrata demais. E, para piorar, esse objeto, na verdade, era uma classe que servia como um molde para criar outros objetos da mesma natureza. (Todo mundo já viu o exemplo da forma, né? Kkk).

    Para alguns, essa lógica fez sentido logo de cara: ouviram, entenderam e aplicaram. Mas, para mim, mesmo com tantos exemplos, tudo ainda parecia estranho. A ideia de converter algo real em um objeto virtual parecia distante, até que, um belo dia, nas aulas da DIO e da faculdade, conheci algo chamado pensamento computacional e me deparei com a palavra abstração. Naquele momento, minha reação foi imediata:

    Google -> pesquisar -> "Significado de abstração".

    Foi aí que minha mente explodiu.

    A palavra "abstrato" já faz parte do nosso dia a dia, mas abstração, no contexto da programação, tem um significado mais profundo. Quando entendi isso, tudo se encaixou, e finalmente consegui contemplar a real essência da POO.

    O que é abstração?

    Na programação, abstração significa identificar e representar apenas os aspectos essenciais de um objeto ou sistema, ignorando detalhes irrelevantes para seu uso no contexto do software.

    Uma vez que entendemos isso, percebemos que temos o poder de construir qualquer coisa em código. Isso é mágico. A programação nos dá uma liberdade incrível: se temos tempo e disposição, podemos criar qualquer coisa. Somos, literalmente, pedreiros de software. A diferença é que, uma vez que entendemos como algo funciona, conseguimos abstrair cada componente para o mundo digital, simular funcionalidades e criar sistemas baseados nessas simulações.

    A POO é exatamente isso: o "poder" de transferir objetos do mundo real para o digital.

    Por exemplo, imagine um monitor. Podemos fazer a abstração dele criando uma classe Monitor, definindo suas características (tamanho, resolução, taxa de atualização) e, a partir dessa classe, instanciar diversos monitores. Com base nesse conceito, podemos desenvolver um sistema que nos permita configurar e controlar um monitor digitalmente. No começo, parece algo simples, mas, com o avanço da ideia, percebemos o quanto isso é poderoso.

    Programar é algo incrível. É libertador transformar pensamentos em código, aprender ao longo do caminho, implementar funcionalidades e ajudar outras pessoas. Tudo isso é mágico e poderoso. Claro, existem limitações – como desenvolver um ChatGPT da vida, que exige uma quantidade absurda de recursos. Mas, se esses recursos existirem, a possibilidade está lá. E mesmo sem eles, podemos criar versões menores e adaptadas para nossas necessidades.

    No fim das contas, a maior limitação sempre estará entre a cadeira e o monitor.

    Embora a abstração seja um dos pilares mais fundamentais da POO, ela não age sozinha. Para estruturar bem um software, também utilizamos outros conceitos essenciais: encapsulamento, herança e polimorfismo. Vamos falar um pouco sobre cada um deles.

    Encapsulamento: É a prática de esconder os detalhes internos de um objeto e permitir o acesso apenas a partes específicas, garantindo segurança e modularidade no código.

    Herança: Permite que uma classe herde atributos e métodos de outra, promovendo reutilização e evitando código duplicado. Por exemplo, se tivermos uma classe Animal com um método fazerSom(), podemos criar subclasses Cachorro e Gato que herdam esse método, mas podem sobrescrevê-lo para emitir sons diferentes

    Polimorfismo: Refere-se à capacidade de um mesmo método ter diferentes comportamentos dependendo do contexto, tornando o código mais flexível e reutilizável.

    Se quiser aprofundar ainda mais no conceito de abstração, este tópico no Stack Overflow explica tecnicamente o tema:

    O que é abstração? – Stack Overflow

    A POO é um paradigma poderoso que, quando bem compreendido, nos permite criar sistemas robustos e escaláveis. Aprender a abstração foi um divisor de águas para mim, e acredito que pode ser para muitos outros também. Agora quero saber: como foi sua experiência ao aprender POO? Você também achou complicado no começo ou pegou o jeito rápido? Me conta aqui nos comentários!

    Compartilhe
    Recomendados para você
    Microsoft AI for Tech - Azure Databricks
    Microsoft Certification Challenge #3 DP-100
    Decola Tech 2025
    Comentários (1)
    DIO Community
    DIO Community - 21/03/2025 12:20

    Caio, você fez uma excelente reflexão sobre como a programação orientada a objetos (POO) pode ser um conceito desafiador no início, mas como, ao compreender abstração, tudo começa a fazer mais sentido. É fascinante como a ideia de "transformar o mundo real em objetos" pode ser confusa, mas, como você disse, o verdadeiro poder vem ao entender que a abstração nos permite criar qualquer coisa a partir do que já existe.

    Você mencionou que, ao entender a abstração, a programação passou a ser mais libertadora para você. Gostaria de saber, como você lida com desafios como esses na sua jornada de aprendizado? Existe alguma estratégia que você utiliza para superar obstáculos que surgem quando está aprendendo um conceito novo, como a POO?

    Recomendados para você