Desenvolvedores.Net - TechBlog

Tag Archives: Overriding

Definições – Intermediário (POO)

4
1 Estrela2 Estrelas3 Estrelas4 Estrelas5 Estrelas (7 votos, média: 4,71 de 5)
Loading...
19 de dezembro de 2010
Para um melhor entendimento deste Artigo veja o Índice (Programação Orientada a Objetos)
Mensagens:
As mensagens são bem simples de entender, mensagens são informações trocadas entre um objeto e outro.
Estas mensagens podem modificar o comportamento do objeto a quem a mensagem foi direcionada,
ou retornar um valor a quem pediu.
A interação dos objetos é feito através de mensagens.Ex: É uma chamada para invocar um de seus métodos.

Pessoa pessoa = new Pessoa();
pessoa.Comer("Maçã");

Neste caso a chamada do método Comer(string alimento) em pessoa gerou uma mensagem,
e indicou ao objeto pessoa para comer uma maçã.

Vejamos outro exemplo:

Pessoa pessoa = new Pessoa();
//aqui Sonhar() retorna true
if (pessoa.Sonhar())
Console.WriteLine("A pessoa está sonhando");

Neste caso o objeto retornou uma informação a quem o chamou, o método retornou que a pessoa esta sonhando.

Overriding:
Override nada mais que é que sobrescrever, substituir o método da classe pai por um método escrito na classe filha.
Você só pode usar o override em métodos que permitam serem sobrescritos.
Ex:
A classe Marcelo (sou eu … rs) herda de pessoa seu comportamento, atributos e todo o mais.
Mas Marcelo não gosta de maçãs, logo a classe Marcelo vai sobrescrever o método Comer(string alimento).
Vejamos como fica:

class Marcelo : Pessoa
{

public override void Comer(string alimento)
{
if (alimento == "Maçã")
Console.WriteLine("Eu não gosto de maçãs. Não vou comer.");
else
base.Comer(alimento);
}
}

Overload:
Ao pé da letra sobrecarga de métodos, significa ter métodos com o mesmo nome e assinatura* diferente.
*Assinatura:
Assinatura de um método é como ele foi declarado, seu nome completo, nome e sobrenome (parâmetros).
Ex: Veja o método Comer(string alimento) podemos dizer que Comer é seu nome e string alimento
é seu sobrenome (parâmetros) que podem ser um ou mais.
Veja o método Comer na classe Pessoa.

public class Pessoa
{

public string Nome { get; set; }

public void Andar()
{ }

public virtual void Comer()
{ }

public virtual void Comer(string alimento)
{
Console.WriteLine("Comendo " + alimento);
}

public void Falar()
{ }

public Boolean Sonhar()
{
return true;
}
}

Persistência:
É a capacidade de um objeto de salvar seus dados para uso em outro momento.
Este termo é muito utilizado quando falamos de banco de dados, onde um objeto salva os dados em uma tabela.
Imaginamos que no objeto pessoa temos as propriedades, Nome, Telefone e CPF e precisamos salvar
estes dados para que quando o aplicativo for fechado possamos recuperar o mesmo ao abrir o aplicativo novamente.

Existem dois tipos de dados, transientes ou persistentes:

Para reforçar:
Dados Transientes: São dados que são válidos apenas dentro do programa ou transação.
Quando o programa é fechado ou a transação termina os dados se perdem
Dados Persistentes: São armazenados fora do contexto do programa,
existem mesmo quando o programa for fechado e
podem ser recuperados a qualquer momento.

Exemplo em CSharp de como persistir (serializar) um objeto

Declaração da classe Pessoa:

public class Pessoa
{
public string Nome { get; set; }

public string Telefone { get; set; }

public string CPF { get; set; }
}

Exemplo da serialização:

//popular o objeto pessoa
Pessoa pessoa = new Pessoa();
pessoa.Nome = "Marcelo";
pessoa.CPF = "000.000.000-00";
pessoa.Telefone = "(00) 0000-0000";

//criar o objeto que irá serializar a pessoa em XML
System.Xml.Serialization.XmlSerializer x =
new System.Xml.Serialization.XmlSerializer
(pessoa.GetType());

//salvar no arquivo XML pessoa.xml
System.Xml.XmlTextWriter xmlWriter =
new System.Xml.XmlTextWriter("pessoa.xml", Encoding.UTF8);

//serializar para pessoa.xml
x.Serialize(xmlWriter, pessoa);

//liberamos o arquivo xml
xmlWriter.Flush();
xmlWriter.Close();

//Neste momento se você abrir o arquivo pessoa.xml
//em algum editor
//verá os dados do objeto pessoa
System.Xml.XmlTextReader xmlReader =
new System.Xml.XmlTextReader("pessoa.xml");

//recuperar os dados e popular o objeto pessoa.
pessoa = (Pessoa)x.Deserialize(xmlReader);

//como teste, iremos passar o nome para uma variável string
string nomePessoa = pessoa.Nome;

Esta ilustração mostra o processo geral de serialização.

Ver Índice

É isso ai pessoal 🙂
Até o próximo
♦ Marcelo

About Marcelo

Nascido em Juruaia/MG em uma fazenda de criação de búfalos, e residindo na região Sul do Brasil. Trabalha com desenvolvimento de aplicações desde os 17 anos. Atualmente é Arquiteto Organizacional na Unimake Software. Para saber mais ... http://desenvolvedores.net/marcelo []'s

Programação Orientada a Objetos (POO)

17
1 Estrela2 Estrelas3 Estrelas4 Estrelas5 Estrelas (12 votos, média: 5,00 de 5)
Loading...
13 de dezembro de 2010
Olá Pessoal.Agora vou iniciar uma série de artigos sobre Programação Orientada a Objetos (POO) ou Object-Oriented Programming (OOP).Na medida do possível irei mostrar como programar cada explicação em alguma linguagem.Este primeiro artigo irá servir como um índice para os outros, sempre que eu postar um item deste índice, irei modificar este artigo fazendo um link daqui para a explicação e vice-versa.Então vamos lá, mãos à obra e vamos ver o que teremos 🙂
É isso ai pessoal 🙂
Até o próximo
♦ Marcelo

About Marcelo

Nascido em Juruaia/MG em uma fazenda de criação de búfalos, e residindo na região Sul do Brasil. Trabalha com desenvolvimento de aplicações desde os 17 anos. Atualmente é Arquiteto Organizacional na Unimake Software. Para saber mais ... http://desenvolvedores.net/marcelo []'s