image

Acesse bootcamps ilimitados e +650 cursos

50
%OFF
Article image
Guilherme Karkoski
Guilherme Karkoski14/02/2025 21:22
Compartilhe

Princípios da OOP com C#

    Programação Orientada a Objetos (OOP) com C# e .NET

    A Programação Orientada a Objetos (OOP) é um paradigma amplamente utilizado no desenvolvimento de software, permitindo a criação de sistemas modulares, reutilizáveis e de fácil manutenção. O C#, dentro do ecossistema .NET, oferece suporte completo à OOP, facilitando a construção de aplicações escaláveis e robustas.

    Princípios da OOP

    A OOP em C# é baseada em quatro princípios fundamentais:

    1. Encapsulamento

    Encapsulamento é o conceito de esconder os detalhes internos de uma classe e expor apenas o necessário.

    Exemplo:

    public class ContaBancaria {
      private decimal saldo;
    
      public void Depositar(decimal valor) {
          saldo += valor;
      }
    
      public decimal ObterSaldo() {
          return saldo;
      }
    }
    

    Neste exemplo, a variável saldo é privada e só pode ser alterada por meio de métodos públicos.

    2. Herança

    Herança permite que uma classe derive de outra, reutilizando código e promovendo a hierarquia de classes.

    Exemplo:

    public class Veiculo {
      public string Modelo { get; set; }
      public void Mover() {
          Console.WriteLine("O veículo está se movendo.");
      }
    }
    
    public class Carro : Veiculo {
      public int NumeroDePortas { get; set; }
    }
    

    Aqui, Carro herda propriedades e métodos da classe Veiculo.

    3. Polimorfismo

    Polimorfismo permite que métodos tenham diferentes implementações em classes derivadas.

    Exemplo:

    public class Animal {
      public virtual void EmitirSom() {
          Console.WriteLine("O animal faz um som.");
      }
    }
    
    public class Cachorro : Animal {
      public override void EmitirSom() {
          Console.WriteLine("O cachorro late.");
      }
    }
    

    Aqui, EmitirSom é sobrescrito na classe Cachorro, alterando seu comportamento.

    4. Abstração

    Abstração permite modelar conceitos do mundo real, expondo apenas os comportamentos essenciais.

    Exemplo:

    public abstract class Funcionario {
      public string Nome { get; set; }
      public abstract void CalcularSalario();
    }
    
    public class Desenvolvedor : Funcionario {
      public override void CalcularSalario() {
          Console.WriteLine("Salário calculado para Desenvolvedor.");
      }
    }
    

    Aqui, Funcionario é uma classe abstrata, garantindo que classes derivadas implementem CalcularSalario.

    OOP na Prática com .NET

    O C# dentro do .NET oferece suporte a padrões e ferramentas que facilitam a aplicação da OOP:

    • Interfaces (interface): Definem contratos que classes devem seguir.
    • Coleções (List<T>, Dictionary<K, V>): Permitem armazenar e manipular objetos de forma eficiente.
    • Dependency Injection (DI): Facilita a inversão de controle, promovendo melhor organização do código.
    • Entity Framework (EF Core): Usa a OOP para mapear objetos para tabelas em bancos de dados.

    O paradigma OOP em C# e .NET é essencial para criar aplicações bem estruturadas, reutilizáveis e fáceis de manter. Ao dominar conceitos como encapsulamento, herança, polimorfismo e abstração, os desenvolvedores podem criar sistemas robustos e escaláveis de maneira eficiente.

    Compartilhe
    Comentários (1)
    DIO Community
    DIO Community - 17/02/2025 16:25

    Ótima abordagem, Guilherme! A Programação Orientada a Objetos realmente potencializa a modularidade, reutilização de código e manutenção em aplicações desenvolvidas com C# e .NET. O jeito como você estruturou os princípios fundamentais – Encapsulamento, Herança, Polimorfismo e Abstração – deixa claro o impacto positivo que esse paradigma tem no design de sistemas escaláveis.

    O exemplo de abstração ficou muito bem aplicado ao mundo real, reforçando a importância de criar contratos bem definidos para classes derivadas. Além disso, mencionar Dependency Injection e Entity Framework destaca como o .NET aproveita a OOP para melhorar a organização e desacoplamento do código.

    Na sua visão, qual desses conceitos costuma ser o maior desafio para quem está começando com OOP no C#?