PROGRAMAÇÃO ORIENTADA A OBJETOC EM C# [part 1]
- #.NET
- #POO
Introdução
O que é programação orientadas a objetos(POO)?
A programação orientada a objetos (POO) é um paradigma de programação que organiza o código em entidades chamadas objetos. Esses objetos possuem características (atributos) e comportamentos (métodos), proporcionando uma forma organizada e modular de desenvolver software.
Os quatro pilares da POO:
- Abstração
- Encapsulamento
- Herança
- Polimorfismo
Classe e Objeto:
A classe é a estrutura que define como um objeto se comportará e o que ele conterá, enquanto o objeto é a materialização dessa definição, com valores e funcionalidades concretas.
Ex:
Pessoa - classe Bob - Objeto
- Nome: String "Olá meu nome é Bob e tenho 20 anos."
- Idade: int
O que é Paradigma?
Um paradigma é um modelo ou padrão aceito que serve como base para resolver problemas e avançar em determinada área.
E um Paradigma de programação?
É um modelo ou padrão que define a visão do programador sobre a estruturção e execução de um programa. Ou seja, é um estilo de programação que orienta a resolução de problemas de forma organizada e sistemática.
Alguns dos principais paradigma de programação:
- Imperativo
- Estruturado
- Orientado a objetos
- Declarativo
- Funcional
- Lógico
Abstração
A abstração permite representar objetos do mundo real de forma simplificada, focando nos aspcetos essenciais e ocultando detalhes desnecessários de implementação.
Uma classe abstrata em C# é um modelo que não pode ser instanciado diretamente, ela serve como base para outras classes que a herdam.
Ex:
______________
| Veiculo |
|-----------------------|
| - Velocidade: int |
|-----------------------|
| + Andar(): void |
------------------------
Código
public abstract class Veiculo
{
public int Velocidade {get; set;}
public abstract void Andar();
}
public class Carro : Veiculo
{
public override void Andar()
{
Velocidade = 100;
System.Console.WriteLine($"Carrando andandando a {Velocidade}km/h");
}
}
Carro carro = new Carro();
carro.Andar();
dotnet run
Carrando andandando a 100km/h
Encapsulamento
O encapsulamento visa ocultar os detalhes de implementação de uma classe, expondo apenas uma interface pública para seu uso.
Os modificadores de acesso, como 'public', 'private' e 'protected', controlam o nível de acesso aos membros de uma classe.
Ex :
____________________
| ContaCorrente |
|---------------------------------|
| + NumeroConta: int |
|---------------------------------|
| - saldo: decimal |
|---------------------------------|
| + Sacar(valor: decimal) |
----------------------------------
public class ContaCorrente
{
public int NumeroConta { get; set; }
private decimal saldo;
public void Sacar(decimal valor)
{
if (valor <= saldo)
{
saldo -= valor;
Console.WriteLine($"Saque realizado. Novo saldo: {saldo}");
}
else
{
Console.WriteLine("Saldo insuficiente para saque.");
}
}
public decimal ConsultarSaldo()
{
return saldo;
}
public void Depositar(decimal valor)
{
saldo += valor;
Console.WriteLine($"Depósito realizado. Novo saldo: {saldo}");
}
}
Conclusão
A POO se consolida como uma ferramenta indispensável para a construção de softwares modernos, oferecendo um paradigma poderoso e flexível para modelar problemas complexos e criar soluções escaláveis. Através da abstração, encapsulamento, herança e polimorfismo, os programadores podem organizar o código de forma modular, facilitando o desenvolvimento, a manutenção e a reutilização de software. Dominar os conceitos da POO é essencial para se tornar um programador completo e preparado para os desafios do mundo digital em constante evolução.