Olá,
Eu estava lendo a apostila FJ-11 da Caelum quando me deparei com um exemplo e uma afirmação que não consegui entender.
O exemplo é mais ou menos assim :
class Cliente {
private String nome;
private String endereco;
private String cpf;
private int idade;
public void mudaCPF(String cpf) {
validaCPF(cpf);
this.cpf= cpf;
}
private void validaCPF(String cpf) {
if(cpf.length()==11) {
System.out.println("Válido");
}
else {
System.out.println("Inválido");
}
}
void mudaNome(String nome) {
this.nome= nome;
System.out.println(nome);
}
}
E logo abaixo vem a afirmação :
" Agora, se alguém tentar criar um CLiente e não usar o mudaCPF, vai receber um erro de compilação, já que o atributo CPF é privado "
class Teste {
public static void main (String[] args) {
Cliente c1 = new Cliente();
c1.mudaNome("mid");
c1.mudaCPF("[telefone removido]");
}
}
E compilou normalmente.
Alguém pode me dizer o que eu estou interpretando errado e que relação tem entre um atributo ser privado e a obrigatoriedade em um método ser usado ?
Desde já, muito obrigado a todos, um abraço.