Bom dia Pessoal, primeiramente gostaria de pedir desculpas pelo atraso no lançamento desta aula.
Ontem tive alguns probleminhas após as 18:00 e não foi possível entrar no sistema.
Mas salvo o atraso, o que nos importa é não ficar sem conteúdo, aqui vamos então!
Tópico abordado: Orientação a Objeto – Parte I
Conceitos de Orientação a Objeto
Estruturada X Orientada a Objeto
Benefícios da Orientação a Objeto
Classe
É um conjunto de códigos de programação que incluem a definição dos atributos e dos métodos necessários para a criação de um ou mais objetos.
Contém toda a descrição da forma do objeto, é um molde para a criação do objeto, é uma matriz geradora de objetos, é a fábrica de objetos.
Uma classe também é um tipo definido pelo usuário.
Objeto ou Instância
Tem determinadas propriedades que o caracterizam e que são armazenadas no próprio objeto. As propriedades de um objeto são chamadas ainda de atributos.
O objeto interage com o meio e em função de excitações que sofre, realiza determinadas ações que alteram o seu estado (atributos).
Um objeto é uma entidade única que reúne atributos e métodos, ou seja, reúne as propriedades do objeto e as reações aos estímulos que sofre.
Classes e Objetos
Declaração de Classes e Objetos
Declarando uma Classe:
class Pessoa
{
string nome;
void Andar() { }
}
Declarando um Objeto:
Endereco objEndereco = new Endereco();
Atributos
Atributos de Classe
Quando um atributo é dividido entre todos os objetos criados, ele é armazenado na classe.
EX: Um contador de relógios criados.
Atributos de Objeto
Quando um atributo é individual ele é armazenado no objeto.
EX: A hora de um relógio.
string nome = “Bill”;
int idade = 53;
Métodos
As ações ou comportamento dos objetos são chamados, na orientação a objeto, de métodos, assim, um método é uma função, um serviço fornecido pelo objeto.
Os comportamentos do objeto são definidos na classe através dos métodos e servem para manipular e alterar os atributos do objeto.
Em um programa orientado a objeto, as excitações são representadas por mensagens que são enviadas a um objeto. Uma mensagem pode ser gerada pelo usuário, por exemplo, ao clicar o mouse.
Um método é um comando que representa uma ação
class Cliente {
private int produtosAdquiridos;
public bool EClienteEspecial() {
if (produtosAdquiridos < 250)
return false;
return true;
}
public void ComprarEspecial() { /* AÇÃO */ }
}
...
Cliente proximoCliente = new Cliente();
bool clienteEspecial = proximoCliente.EClienteEspecial();
if (clienteEspecial)
proximoCliente.ComprarEspecial();
Passando parâmetros por valor
class Cliente {
private int produtosAdquiridos;public void DefineProdutosAdquiridos(int quantidade)
{
produtosAdquiridos = quantidade;
}
}
...
Cliente novoCliente = new Cliente();
int produtos = 255;novoCliente.DefineProdutosAdquiridos(produtos);
//OR
novoCliente.DefineProdutosAdquiridos(200);
Passando parâmetros por referência (usando ref)
public void RetornaEndereco(ref int numero, ref string rua)
{
numero = this.numero;
rua = this.rua;
}int numeroLocal = 0;
string ruaLocal = “”;novoCliente.RetornaEndereco(ref numeroLocal, ref ruaLocal);
// numeroLocal e ruaLocal recebem novos valores
Passando parâmetros por referência (usando out)
public void RetornaEndereco(out int numero, out string rua)
{
numero = this.numero;
rua = this.rua;
}int numeroLocal;
string ruaLocal;novoCliente.RetornaEndereco(out numeroLocal, out ruaLocal);
// numeroLocal e ruaLocal são inicializados
Métodos - Sobrecarga
Utilizando sobrecarga de métodos
public void DefineProdutosAdquiridos(int novoNumero)
{
this.produtosAdquiridos = novoNumero;
}
public void DefineProdutosAdquiridos(int novoNumero, bool clienteModificado)
{
if (clienteModificado)
this.produtosAdquiridos = novoNumero;
}
public void DefineProdutosAdquiridos()
{
this.produtosAdquiridos = RecuperaProdutos(this.ClienteID);
}
Construtores
Construtores são métodos especiais responsáveis pela implementação de ações necessárias para a existência de um objeto
public class Cliente
{
public int produtosAdquiridos;
public readonly bool clienteEspecial;//Construtor default
public Cliente()
{
if (this.produtosAdquiridos > 250)
this.clienteEspecial = true;
else
this.clienteEspecial = false;
}
}
Bom pessoal, o conteúdo de hoje é muito complexo e necessita que tenha bastante cuidado, pois o bom entendimento da orientação a objeto é fundamental para que possamos ser bons desenvolvedores .NET.
Vou parando o conteúdo neste tópico e retornaremos na próxima sexta-feira com o Tópico Herança e Polimorfismo que complementa este conteúdo de hoje.
Mais uma vez peço desculpas pelo atraso na publicação.
Att,
Victor Santos





