Oi Thamyres,
A sua dúvida é muito comum no início dos estudos em C# e orientação a objetos! 😊
No código que você compartilhou, temos dois tipos de declarações de variáveis que, apesar de terem nomes parecidos, desempenham papéis diferentes:
Variáveis de campo (privadas): private string rua;
, private string cidade;
, private string estado;
- São declaradas com a palavra-chave
private
, o que significa que elas só podem ser acessadas diretamente dentro da própria classe Endereco
. - Geralmente, são escritas com a primeira letra minúscula por convenção.
- Elas armazenam os dados da classe.
Propriedades (públicas): public string Rua { get; set; }
, public string Cidade { get; set; }
, public string Estado { get; set; }
- São declaradas com a palavra-chave
public
, o que significa que podem ser acessadas de qualquer lugar (outras classes, métodos, etc.). - Geralmente, são escritas com a primeira letra maiúscula por convenção.
- Elas fornecem uma forma controlada de acessar e modificar os valores das variáveis de campo.
- O
get
permite ler o valor da variável de campo e o set
permite atribuir um novo valor.
Em resumo, as variáveis de campo (privadas) armazenam os dados, enquanto as propriedades (públicas) fornecem uma interface para acessar e modificar esses dados de forma controlada. 🤔
Isso é um dos pilares do encapsulamento na orientação a objetos.
Para saber mais: Propriedades (Guia de Programação em C#). Este link da documentação oficial da Microsoft explica detalhadamente o conceito de propriedades em C#.
Continue praticando e explorando os conceitos da orientação a objetos! 💪