Article image
Eduardo Costa
Eduardo Costa24/08/2023 10:51
Share

Odisseia Orientada a Objetos: A Saga da Programação

  • #ChatGPT
  • #POO

Pilares

A Programação Orientada a Objetos (POO) é um paradigma de programação que organiza e estrutura o código em torno de "objetos", que combinam dados e funcionalidades relacionadas.

Ela possui 4 pilares que vamos aprender utilizando uma dinâmica de um mundo de magia.

image

Objeto

Primeiramente devemos saber o que é um objeto.

Os objetos são basicamente formas de retratar algo que possui características e ações. Como um personagem de jogo que possui nome, vida e ataque.

image

Encapsulamento

‘Ninguém mais toca além de mim!’

image

Toda alteração de dados deve ser feita somente por métodos da própria classe, não podendo ser modificado por fora durante o código.

Sabe quando nós estamos aprendendo a programar e ficamos mudando o valor das variáveis em qualquer parte do código? Aqui não podemos fazer isso.

No exemplo abaixo, se queremos diminuir a variável de vida que nosso herói tem, a classe do herói precisa ter uma função responsável por fazer isso.

image

Herança

Que tal termos heróis diferentes?

Lembra da nossa classe “Heroi”? Podemos ter especializações que fazem tudo que os heróis fazem, e mais! Podemos criar novas classes que estentem da classe herói. Na programação dizemos que a classe herói é a classe mãe/pai das novas classes que criarmos, onde eles automaticamente terão todas as variáveis do herói e suas funções, mas agora podem ter ainda mais características.

image

Polimorfismo

Fazem coisas iguais, mas de forma diferente!

A nossa classe “Heroi” possui a função “atacar” que nossa guerreira e mago herdaram, mas cada um ataca de forma diferente, né?

Como guerreiro e mago já sabiam a função atacar por herdarem da classe de herói, aqui usamos o comando override para sobrescrever o que a função fazia, assim cada um age de uma forma diferente.

image

Abstração

Um exemplo a ser seguido

Como a classe de herói é somente uma base, nunca vamos criar algo que seja só herói, mas sim uma especialização variante dela como guerreiro e mago, a classe não precisa de conteúdo em suas funções, só precisa dizer o que o guerreiro e o mago precisam saber.

Podemos dizer somente que quem estender de herói precisa saber usar uma habilidade especial, mas como cada um vai ter uma habilidade diferente, a função em herói não precisa dizer o que farão.

image

Agora que guerreiro e mago sabem que precisam ter essa função, eles precisam sobrescrever dando conteúdo a ela.

image

Conclusão

Vamos criar nossos personagens!

Para a criação dos nossos objetos, as classes precisam ter um inicializador. É uma forma de criamos nossos personagens com seus atributos iniciais, nele passamos as informações essenciais que nosso personagem precisa ter, como nome e vida.

image

Agora que sabemos como criar nossas classes, basta criar nossos objetos com elas!

image

Agradecimentos

Obrigado por ler até aqui!

O artigo foi criado com o conteúdo de um e-book totalmente didático criado por mim como atividade de curso.

As imagens utilizadas são da empresa Ankama de seu jogo Waven, os códigos foram feitos pelo ChatGPT e modificado por mim e, para apresentação, colocados no ShowCode.

Share
Comments (7)
George Souza
George Souza - 24/08/2023 11:47

Conteúdo massa, esclareceu algumas coisas pra mim, obrigado por compartilhar.


Valeu precioso!

Bruno Colares
Bruno Colares - 24/08/2023 12:29

Que conteúdo foda, parabéns!

Alex Lima
Alex Lima - 24/08/2023 12:09

Muito bom parabéns!

Maíra Andrade
Maíra Andrade - 24/08/2023 11:40

Que conteúdo massa, amo estudar comparando os assuntos a uma coisa do dia a dia ou algu assunto de lazer, hehe. Parabéns!

DC

Danilo Costa - 24/08/2023 11:34

muito bom

Filipe D'Elia
Filipe D'Elia - 24/08/2023 11:21

Que perfeito cara, ficou muito show. Parabéns!

Kayllane Pina
Kayllane Pina - 24/08/2023 11:12

Que conteúdo incrível, Eduardo! Muito obrigado por simplificar o POO.