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! 💪