Modificadores de Acesso
| Modificador de Acesso | Descrição |
|---|---|
| public | Permite o acesso de qualquer código sendo executado em qualquer assembly. |
| internal | Permite o acesso de qualquer código no mesmo assembly. |
| private | Permite acesso somento dentro da classe. Esse é o modificador padrão caso você não especifique nenhum. |
| protected | Permite acesso dentro da classe e de classes derivadas. |
O mais comum é criar campos de dados privados na classe para evitar a manipulação direta dos valores, e expor properties para prover acesso aos campos de forma indireta.
Properties
Properties são usadas para atribuir (setters) e retornar (getters) membros de uma classe. Observe o exemplo da classe Carro:
public class Carro
{
// campos privados
private string campo_placa;
private string campo_modelo;
// properties públicas
public string Placa
{
get
{
return campo_placa;
}
set
{
// Obersve o uso da keyword 'value' que representa
// o valor a ser atribuído.
// Aqui é possível adicionar lógica de validação.
campo_placa = value;
}
}
public string Modelo
{
get
{
return campo_modelo;
}
set
{
campo_modelo = value;
}
}
// usando properties automaticas
public DateTime AnoDeFabricacao { get; set; }
// Um construtor
public Carro(string placa)
{
this.campo_placa = placa;
}
}
Foram criadas as properties Placa e Modelo que acessam os campos privados campo_placa e campo_modelo. Foi criado também uma propertie chamada AnoDeFabricacao que gera automaticamente o campo privado, o getter e o setter.
Um exemplo simples do uso da classe:
// Criando um novo carro usando o construtor
Carro uno = new Carro("HGW 1122");
// Atribuindo alguns valores aos membros
uno.AnoDeFabricacao = new DateTime(2010,01,01);
uno.Modelo = "Fire";
// Acessando
Console.WriteLine("Placa: {0}", uno.Placa);
Nenhum comentário:
Postar um comentário