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

Sobre o encapsulamento

Olá, não sei se é uma pergunta boba, mas qual seria a real utilidade de um método "private", se é somente o desenvolvedor que irá mexer no código? O professor disse que é uma forma de garantir certa segurança, porém numa interface com um usuário do banco ByteBank por exemplo, uma condicional já seria suficiente para impedir a atribuição de um valor negativo sobre o saldo da pessoa.

Espero que a pergunta tenha ficado clara, se não eu posso refazer.

3 respostas
solução!

Boa noite, Irei tentar explicar com o seguinte exemplo:

Imagina que eu crie uma calculadora e te passe essa calculadora para você usar:

sintaxe fictícia

Calculadora {
public n1;
public n2;

public function somar(n1,n2) {
        return n1+n2;
    }

}

Agora quando você for acessar essa calculadora. você consegue ver atributos que não deveriam ser vistos, que no caso são o n1 e o n2. e com isso pode alterar atributos que não deveriam ser alterados.

Calculadora.n1 = 2; -> Pra que você iria querer alterar o n1?

Agora se você só deixar a função publica, quando você for acessar o objeto calculadora você só irá ter acesso ao somar.

Calculadora {
private n1;
private n2;

public function somar(n1,n2) {
        return n1+n2;
    }
}

Calculadora.somar(10,10)

Não sei se ficou claro, más essa é a melhor forma que eu consigo explicar.

É claro que existe casos e casos, nem sempre você irá querer deixar um atributo privado, mas isso geralmente é exceção.

Exemplo legal Jandson!

Segue um pequeno complemento somente para ilustrar:

===========================================

Níveis de acessibilidade (Referência de C#)

Artigo

06/04/2022

2 minutos para o fim da leitura

Use os modificadores de acesso, public, protected, internal ou private, para especificar um dos níveis de acessibilidade declarada a seguir para membros.

  • public - O acesso não é restrito.
  • protected - O acesso é limitado à classe que os contém ou aos tipos derivados da classe que os contém.
  • internal - O acesso é limitado ao assembly atual.
  • protected internal - O acesso é limitado ao assembly atual ou aos tipos derivados da classe que os contém.
  • private - O acesso é limitado ao tipo recipiente.
  • private protected - O acesso é limitado à classe que o contém ou a tipos derivados da classe que o contém no assembly atual. Disponível desde o C# 7.2.

https://docs.microsoft.com/pt-br/dotnet/csharp/language-reference/keywords/accessibility-levels

===========================================

[]'s,

Fabio I.

Obrigado pessoal!