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

Dúvida no Ex. 5 da Aula 10 - Reescrita e Polimorfismo

Não intendi muito bem por que é melhor usar um atributo como private e outro como publico, por exemplo em um projeto real porque é melhor em determinado atributo usar como private? porque não seria recomendado eu usar tudo como public? ou seja em que caso é recomendado usar private?

Não intendi muito bem pq privar um atributo ou não

2 respostas
solução!

Quando você manipula um atributo por meio de acessos modificaores, há regras bem importantes. Vamos lá!

Quando você usa um atributo em modo private, isso impede que esse mesmo atributo seja diretamente alterado em uma outra classe na qual ele está sendo usado. Vamos há um exemplo prático:

imagine que você tem um atributo em uma classe, e que esse atributo seja importante como por exemplo CPF:

public class Pessoa {
    public String Cpf;
}

Agora imagine que você usa esse atributo em uma classe que executa o seu programa, que contém o método main

public class Testa{
    public static void main(String [] args ){

        Pessoa pessoa = new Pessoa();
        pessoa.cpf = "112.545.698-78";
    }

}

Veja que na classe Testa eu posso alterar o CPF direto, sem precisar implementar um Setter ou um getter por exemplo! Isso não é uma boa prática em orientação a objetos, muito pelo contrário é uma pessima ideia fazer isso! Por quê? É simples, porque qualquer um pode vim e alterar o seu CPF sem antes passar por uma regra padrão. E é justamente isso que o private faz, se você altera o

public String cpf; para private String cpf;

Automaticamente a linha: pessoa.cpf = "112.545.698-78"; para de compilar, porque não está mais visivel para outras classes, agora se você quiser manipular esse atributo antes ele terá que passar por alguma regra, por exemplo um setter ou um getter.

Entendido? Espero que sim!

Abraços e bons estudos.

Opa intendi vlw pela explicação

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software