Jump to content


Photo

Diferenã Entre Esses 2 Acessos


  • Faça o login para participar
2 replies to this topic

#1 Newbay

Newbay

    Normal

  • Usuários
  • 106 posts
  • Sexo:Não informado

Posted 31/07/2008, 00:25

using System;

public class Carro
{
	private string _marca;

	public string setMarca(string marca)
	{
		_marca = marca;
		return _marca;
	}
}
Carro meuCarro = new Carro()
meuCarro.setMarca("Chevrolet")

Nesse exemplo eu acessei a propriedade _marca atraves do metodo setMarca, pois ele é private.

using System;

public class Carro
{
	public string _marca;

	public string setMarca(string marca)
	{
		_marca = marca;
		return _marca;
	}
}

Carro meuCarro = new Carro()
meuCarro._marca="Chevrolet"

Nesse exemplo eu acessei direto a propriedade _marca pois ela é pública.

Por isso não entendo a diferença entre declarar uma variavel public ou private, sendo que no final das contas a mesma variavel terá um valor atribuido.

Sei q private so posso alterar seu valor atraves de algum método, e públic posso chama-la direto.
Mas eu poderia declarar todas como public, e atraves do corpo do programa nao colocar nenhuma função que altere a propriedade diretamente, somente passando pelo metodo da classe....... certo?

Obrigado

#2 MACUL

MACUL

    Doutor

  • Usuários
  • 770 posts
  • Sexo:Masculino
  • Localidade:SP

Posted 05/08/2008, 11:02

a diferença é onde terá acesso a variável apenas dentro da classe/módulo ou em toda aplicação.
quando acessa a variável privada de outra forma em outro lugar está utilizando outros conceitos.
*************** M ** A ** C ** U ** L ***************

*************************************************

#3 denisweb

denisweb

    Denis Ferrari

  • Usuários
  • 245 posts
  • Sexo:Não informado
  • Localidade:Vitória - ES
  • Interesses:Compartilhar conhecimentos.

Posted 03/10/2008, 11:33

Bom dia,

Suas variáveis internas são geralmente private/protected p/ que as pessoas que forem utilizar a classe instanciada não consigam acessar diretamente a variável, mais consigam acesso atravéz de uma propriedade ou método que valida o valor ou modifica o mesmo, exemplo:

private string _cpf;

public string setCpf(string cpf)
{
_cpf = cpf; // Aqui vc poderia remover uma formatação, validar a autenticidade do cpf, etc...
}

Espero ter ajudado...

Abraços
Denis Ferrari
Gerente de Projetos
Vixtime Agência Digital




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq