Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Qual a diferença entre um campo e uma propriedade ?

Olá, estou com essa dúvida, não consigo diferenciar campo de propriedades, para mim, é a mesma coisa. Alguém pode me dar um help ?

5 respostas

Olá Santi, tudo certo?

Um campo é um membro da classe e são os campos que carregam os valores do objeto. Uma propriedade é um membro que fornece um mecanismo flexível para ler, escrever ou calcular o valor de um campo particular.

Então, podemos dizer que a propriedade existe para que o campo não seja alterado fora da classe sem passar pelas regas da propriedade.

Espero que tenha ajudado, mas qualquer coisa estamos a disposição!

Bons estudos!

Seguindo esse seu raciocínio no exemplo abaixo. Digo que Saldo é uma propriedade e _saldo é um campo ? Campo representa meu atributo (que recebe o valor mesmo) e Propriedade é o que acessa ele ? Em resumo, suas palavras significao isso ?

class Teste {
    private double _saldo;

    public double Saldo {
        get{return _saldo;}
        set{_saldo = value;}
    }
}

Se for parar para pensar, essa "Propriedade" seria um método. Eu entendo o seguinte: Caracteristicas de uma classe são minhas propriedades e meus Comportamentos são meus métodos. Esse termo Campo me bagunçou.

solução!

Existe uma diferenca entre variaveis (campos) e propriedades tanto na sintaxe como no comportamento. Variaveis sao construidas com: Modificador de acesso // tipo de dados // nome da variavel

public string nome;

Propriedades com: Modificador de acesso // tipo de dados // nome da variavel // metodos de leitura e modificacao get e set

public string Nome { get; set; }

Um dos objetivos da orientacao a objeto eh manter seu codigo simples, robusto e de facil manutencao. As propriedades fazem com que voce suprima do mundo exterior como as coisas acontecem na sua classe com determinados campos. As propriedades te permitem esconder suas variaveis (deixando as privadas) expondo metodos (get e set) que sao interfaces que te permitem interagir com tuas variaveis. A diferenca basica esta na interacao. Com variaveis voce altera ou consome o valor de uma variavel diretamente acessando a propria variavel, ja com propriedades voce precisa passar por validacoes para chegar ate sua variavel.

Exemplo:

 private int _idade;
        public int Idade
        {
            get
            {
                return _idade;
            }
            set
            {
                if (value < 10)
                {
                    Console.WriteLine("Nao cadastrar usuario com idade menor que 10 anos");
                }
                else
                {
                    _idade = value;
                }
            }
        }

Como pode ver no exemplo acima estou usando uma propriedade Idade para que so permite o cadastro de idade maior que 10. Essas validacoes so podem ser feitas dentro de propriedades, as variaveis em si nao tem essa capacidade. As variaveis so sao repositorios de dados.

Antes das propriedades existirem o que se fazia era criar funcoes/metodos que fizessem o papel da propriedade. Era mais codigo gerado que tinha que ser implementado se quisessemos ter esse nivel de encapsulamento.

Espero ter esclarecido.

Abs

Esclareceu cem por cento. Obrigado.