Programação Orientada a Objetos (POO) - I
Programação Orientada a Objetos (POO)🔗
Orientação a objetos é um paradigma de programação organizado através de objetos. Isto é, quando utilizamos POO, estamos facilitando a forma de compreensão e implementação de um projeto. Porque, simplesmente estamos se preocupando na forma em que as informações são definidas, como característica e comportamentos, e como elas se relacionam entre si.
Para ficar mais fácil, precisamos analisar o contexto de um projeto. Como exemplo utilizarei um time de futebol.
Classes🔗
Classes organizam características e comportamentos comuns a um grupo de informações.
Sendo assim podemos definir que todas as pessoas em um time de futebol, fazem parte da classe Pessoa. Pois, todas elas possuem características e comportamentos comuns.
Classe Pessoa
Características
- Nome
- Idade
- Salário
Comportamentos
- Participa dos jogos
- Participa dos treinos
public
Atributos🔗
São as características de cada objeto. Como: Nome, Idade, Situação e Salário.
public string nome;
public int idade;
public decimal salario;
Métodos🔗
São comportamentos de cada objeto. Como: Participar do jogo e Participar do treino.
public void
public void
Objetos🔗
São instancias de uma classe. Ou seja, sendo que definimos uma Classe Pessoa possui características como: Nome, Idade, Situação e Salário e comportamentos como: Participar do jogo e Participar do treino. Ao instanciar um objeto desta classe, devemos cria-lo segundo as definições da classe que ele está sendo gerado.
Por exemplo:
Pessoas - Time Futebol
Tipo do objeto:PessoaCaracterísticas
- Nome: Neymar
- Idade: 19 anos
- Salário: 800.000,00
Comportamentos
- Participa dos jogos
- Participa dos treinos
//Istanciação do objeto
Pessoa pes_Neymar = ;
//Atribuição de valores aos atributos
pes_Neymar.nome = "Neymar";
pes_Neymar.idade = 19;
pes_Neymar.salario = 8000000;
//Execução dos métodos
pes_Neymar.;
pes_Neymar.;
Método Construtor🔗
Para estanciar um objeto, utilizamos o método construtor da classe. Método construtor deve ter exatamente o mesmo nome da classe e não devem possuir um tipo de retorno na sua definição. Porque, ele já é responsável por retornar um objeto do tipo da classe que pertence.
public
Herança🔗
É a generalização das informações. Ou seja, dentro de um time de futebol temos dois tipos de pessoas: jogadores e o técnico. E cada um desses tipos, possui algumas características e comportamentos, comuns e outras diferentes.
Um jogador, além de possuir as outras características de pessoas, possui também quantidade de gols marcados, peso, velocidade e o comportamento de marcar gol.
Um técnico, além de possuir as outras características de pessoas, possui também técnicas de treino e o comportamento de marcar treino.
Para atender a este tipo de situação, podemos criar duas classes diferentes, mas herdando características e comportamentos comuns, definidos na classe Pessoa.
Pessoas - Time Futebol
Jogadores
Técnico
public class Jogador : Pessoa
{
public int qtdeGolMarcado;
public decimal peso;
public int velocidade;
public void marcarGol() { }
}
public
Sobrecarga🔗
São como comportamentos comuns, na vida real. Mas com algumas particularidades, que os diferem.
Na POO, são métodos com o mesmo nome, mas com a assinatura dos parâmetros diferentes.
public void
public void
public void
Referência this🔗
Especifica que estamos referenciando apenas as características e métodos da própria classe.
Por exemplo, se eu passo por parâmetro a quantidade de gols marcado em uma partida, com o mesmo nome, da propriedade qtdeGolMarcado, existente na classe. Para especificar qual é variável, que representa minha propriedade existente na classe, devo utilizar o prefixo this.
public void
Modificadores de Acesso🔗
Um modificador de acesso determina até onde o atributo ou método pode ser visualizado, ou seja, determinam quais os locais ele pode ser usado. Eles são o utilizados no encapsulamento. Temos pelo menos 3 tipos de modificadores de acesso padrões, na maioria das linguagens POO:
public Acesso não é restrito. Membro é acessado de qualquer lugar.
protected Pode ser acessado dentro da classe que o define e pelas classes que a herdam.
private Membro pode ser a cessado somente dentro da classe que o define.
public int idade;
protected string nome;
private decimal salario;
Por enquanto é isto. No próximo artigo continuarei com outros conceitos de POO.