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
Artigos relacionados
-
Artigo
-
Artigo
-
Artigo
-
Artigo
-
Artigo