Propriedades e Eventos – Classes: Programação Orientada a Objetos – Parte 2

Neste artigo veremos mais dois elementos da classe: as propriedades e os eventos.

 Olá pessoal, neste artigo continuaremos a ver os elementos da classe, vendo propriedades e eventos. Acompanhem:

 - Propriedades: São estruturas em uma classe que definem o acesso a informações dentro dela. Uma propriedade é composta por dois métodos (os famosos Get e Set): um método para retornar a informação chamado Get, e um método para definir o valor da propriedade chamado Set. Geralmente, para cada método existe uma variável dentro da classe que armazena o valor da propriedade.

 Até o .NET Framework 2.0 usávamos uma forma para encapsular as propriedades de uma variável, por meio do método Encapsulate Field, como você pode notar no mini passo-a-passo das imagens a seguir:




 Após clicar em Apply, veremos o seguinte resultado em nossa classe:

public class Produto

{

private decimal _preco;

 

public decimal Preco

{

get { return _preco; }

set { _preco = value; }

}

}

 A partir do Visual Studio 2008 temos um recurso que faz isso mais rapidamente, na verdade ele é um code snippet, chamado prop. Portanto se você digitar prop e apertar a tecla TAB duas vezes, o código gerado é o seguinte:

public int MyProperty { get; set; }

 Assim temos o mesmo resultado que o código da classe Produto, só que em apenas uma linha, aumentando assim a produtividade de nossas codificações.

 Assim temos nosso Get e Set de nossa propriedade, referentes à variável _preco.

 P.S: essa ideia de encapsular uma propriedade, gerando assim o Get e o Set, faz parte de um conceito muito difundido e usado entre os programadores, chamado de Refatoração.

 - Eventos: São mensagem que a classe dispara em determinada situação. Para que o evento funcione, é necessário que um método seja escrito para ser executado quando ocorrer o evento. A classe apenas fica sabendo que existe esse método em tempo de execução.

 Para que o mecanismo dos eventos funcione, é necessário usar um tipo de estrutura chamado Delegate (que será abordada em artigos futuros).

 Basicamente Delegate é uma variável que guarda o endereço de uma função. Assim, quando o evento é disparado, essa variável chama a função associada a ela. O exemplo a seguir mostra a implantação de um evento, usando o delegate padrão para tratamento de eventos chamado EventHandler:

public class Estoque

{

public event System.EventHandler EstoqueBaixo;

public int totalEstoque;

 

public void Retirada(int quantidade)

{

totalEstoque -= quantidade;

 

if (totalEstoque < 5)

{

if (EstoqueBaixo != null)

{

EstoqueBaixo(this, new EventArgs());

}

}

}

}

 Para usarmos efetivamente uma classe, devemos ciar um objeto. Este processo é chamado de instanciação. O exemplo a seguir instancia a classe Cliente, criada no artigo anterior, em uma variável chamada objCliente e preenche alguns campos (iremos fazer isso com mais detalhes no próximo artigo):

public void DadosCliente()

{

Cliente objCliente = new Cliente();

objCliente.Nome = "Wellington";

objCliente.Telefone = "3222-2223";

objCliente.Email = "wellington@balbo.com";

}

 Note que no artigo anterior criamos também o campo Codigo, mais como ele é do tipo private não é acessado de fora de sua classe. Por isso, não o usamos no exemplo acima.

 Obs: Criarei artigos falando sobre modificadores de acesso, aguardem!

 Assim finalizo o artigo. Na última parte de nossa série de artigos sobre Classes veremos um exemplo prático bem simples, com alguns dos elementos descritos até aqui. Não percam!

 Um abraço, e até o próximo artigo.

 Wellington Balbo de Camargo

 wellingtonbalbo@gmail.com

Artigos relacionados