Article image
Yorhan David
Yorhan David11/01/2024 09:00
Compartilhe

H.E.P.A.

  • #.NET C#
  • #POO

Os quatro principais pilares da programação orientada a objetos (POO). Depois que se aprende toda a parte básica, é normal que esbarramos em empecilhos como: códigos repetitivos e longos, falta de organização, baixa proteção etc. Contudo, a orientação a objetos entra para solucionar esses problemas.

 

Herança

public class Vilan: Heroi
  {
      public int numVitimas;
      public Vilan(string name, int level, int health, string type):base(name,level,health,type){}
  }

Usada principalmente para reaproveitar objetos já existentes, permite que classes herdem atributos de outras classes, evitando a repetição de comandos. Exemplo: O objeto: Vilão, herda do objeto: Herói, já que ambos possuem características em comum como o nome.

 

Encapsulamento

private string IdentidadeSecreta()
      {
          return "Bruce Wayne";
      }

Serve para restringir o alcance de dados de métodos ou atributos, afim de protegê-los. Só poderão ser acessados dentro do próprio objeto ou por meio de outros métodos como: getters and setters. Exemplo: somente a classe Herói tem acesso ao método IdentidadeSecreta.

 

Polimorfismo

public virtual void AtaqueEspecial(int damage, Heroi vilan)
      {
         damage += moral;
         vilan.Health -= damage;


         Console.WriteLine($"Você atingiu o Vilão: {vilan.Name} com o Ataque Especial");
         Console.WriteLine($"Você causou: {damage} de dano com o Ataque Especial ao Vilão: {vilan.Name}");
      }

public override void AtaqueEspecial(int damage, Heroi heroi)
      {
         damage += numVitimas;
         heroi.Health -= damage;


         Console.WriteLine($"Você atingiu o Herói: {heroi.Name} com o Poder Maligno!");
         Console.WriteLine($"Você infligiu: {damage} de dano com o Poder Maligno ao Herói: {heroi.Name}");
      }

É uma reciclagem, permite que métodos já implementados em uma classe, possam ser reutilizados em outra. Podemos fazer alterações na sua estrutura e utilizar em outro contexto. Exemplo: A classe Vilão, subscreveu o método AtaqueEspecial da classe Herói e alterou a forma de como é calculado o dano.

 

Abstração

public class Heroi
  {
      public string Name;
      public int Level;
      public int Health;
      public string Type;
      public int moral;
  }

Pegar exemplos do mundo real e implementá-los na máquina, descartando coisas irrelevantes. É uma maneira de extrair somente o essencial e deixar tudo o menos complexo possível. Exemplo: Todo herói tem um nome, então não precisamos criar uma classe para cada herói com nome diferente.

Compartilhe
Comentários (0)