Suponhamos que estamos fazendo o desenvolvimento do site de um banco, quando nós definimos os métodos de definir o nome e cpf como públicos, certo? Mas isso não afetaria a segurança dos dados dos clientes, podendo qualquer um ver ou alterar?
Suponhamos que estamos fazendo o desenvolvimento do site de um banco, quando nós definimos os métodos de definir o nome e cpf como públicos, certo? Mas isso não afetaria a segurança dos dados dos clientes, podendo qualquer um ver ou alterar?
Olá, Daniel!
Em Orientação a Objetos, quando definimos métodos como públicos, estamos permitindo que esses métodos sejam acessados e utilizados por qualquer parte do código que tenha acesso à instância do objeto. No entanto, isso não significa que os dados estão inseguros.
Vamos pegar como exemplo o método defineCpfTitular(string $cpf)
. Ele é público e permite que definamos o CPF do titular da conta. No entanto, a propriedade $cpfTitular
é privada, o que significa que ela só pode ser acessada e alterada dentro da própria classe. Isso quer dizer que não podemos fazer algo como $primeiraConta->cpfTitular = '123.456.789-10'
diretamente, pois resultaria em um erro. A única forma de alterar o CPF do titular é através do método defineCpfTitular(string $cpf)
, que está sob nosso controle.
A segurança dos dados é garantida porque nós, como desenvolvedores, temos controle total sobre o que esses métodos públicos fazem. Por exemplo, poderíamos adicionar uma validação de CPF dentro do método defineCpfTitular(string $cpf)
para garantir que o CPF é válido antes de atribuí-lo à propriedade $cpfTitular
.
A mesma lógica se aplica ao método recuperaCpfTitular()
. Ele é público, então qualquer parte do código que tenha acesso à instância do objeto pode utilizá-lo para obter o CPF do titular. No entanto, esse método apenas retorna o valor de $cpfTitular
, ele não permite que o CPF seja alterado.
Espero ter ajudado e bons estudos!
Vlw Vinícius, ajudou batante