Eu não entendi muito bem o conceito, aliás, se as propriedades trazem uma segurança maior no nosso código, em algum momento terei que usar atributos? Alguém poderia me exemplificar em código?
Eu não entendi muito bem o conceito, aliás, se as propriedades trazem uma segurança maior no nosso código, em algum momento terei que usar atributos? Alguém poderia me exemplificar em código?
Olá! Tudo bem?
Atributos são basicamente campos privados que armazenam o estado de um objeto. Eles não têm controle sobre como os dados são acessados ou modificados. Por exemplo:
class Musica
{
private string nome;
private string artista;
private int duracao;
}
Propriedades, por outro lado, são uma forma de encapsular o acesso aos atributos, permitindo um controle maior sobre como os dados são lidos e modificados. Elas fornecem uma maneira de proteger o acesso aos dados, permitindo, por exemplo, que você defina lógica específica para validação ou transformação de dados quando eles são acessados ou alterados. Aqui está como você pode definir propriedades para os atributos acima:
class Musica
{
private string nome;
private string artista;
private int duracao;
public string Nome
{
get { return nome; }
set { nome = value; }
}
public string Artista
{
get { return artista; }
set { artista = value; }
}
public int Duracao
{
get { return duracao; }
set { duracao = value; }
}
}
No exemplo acima, Nome
, Artista
e Duracao
são propriedades que controlam o acesso aos atributos nome
, artista
e duracao
, respectivamente.
Você pode usar propriedades para adicionar lógica adicional ao definir ou obter valores. Por exemplo, você pode querer garantir que a duração de uma música nunca seja negativa:
public int Duracao
{
get { return duracao; }
set
{
if (value >= 0)
{
duracao = value;
}
}
}
Em resumo, enquanto você pode usar atributos para armazenar dados, propriedades oferecem um meio mais seguro e flexível para acessar e modificar esses dados.
Espero ter ajudado e bons estudos!