A visibilidade de variáveis, especialmente em propriedades e métodos na programação orientada a objetos, é um conceito chave que é de grande importância para qualquer desenvolvedor. Em PHP, os modificadores de visibilidade public, private e protected determinam quem pode acessar certas propriedades e métodos. Esses conceitos ajudam a implementar o encapsulamento de dados, tornando os programas orientados a objetos mais robustos e manuteníveis. Neste guia, você aprenderá como esses modificadores são usados e quais impactos eles podem ter na estrutura da sua programação.

Principais conclusões

  • public: Propriedades são acessíveis de qualquer lugar.
  • private: Propriedades são acessíveis apenas dentro da própria classe.
  • protected: Propriedades são acessíveis dentro da classe e em classes derivadas.

Guia passo a passo

1. Criando uma classe simples com uma propriedade pública

Para introdução, vamos criar uma classe Carro, onde definiremos uma propriedade pública chamada velocidade. Isso lhe dará uma visão clara de como você pode acessar essa propriedade de fora.

Visibilidade de propriedades em PHP – público, privado e protegido

Agora você pode criar um objeto dessa classe:

Visibilidade de propriedades em PHP – público, privado e protegido

Se agora você definir a velocidade do Carro para 30, 50 ou até 130, não existem restrições de acesso – essa é a força da visibilidade public.

2. Introduzindo a velocidade máxima com uma propriedade privada

Agora vamos adicionar uma propriedade privada velocidadeMaxima e modificar o método para que ele defina apenas velocidades permitidas. Dessa forma, você pode garantir que apenas valores válidos sejam atribuídos.

Com este método, você pode definir a velocidade enquanto garante que nenhum erro ocorra devido a valores muito altos.

Visibilidade de propriedades em PHP – public, private & protected

3. Usando métodos Getter e Setter para propriedades privadas

Uma vez que a velocidadeMaxima é privada, você só pode acessá-la através de métodos dentro da classe. O exemplo a seguir mostra como você implementa métodos Getter e Setter.

Visibilidade de propriedades no PHP – público, privado e protegido

Através desses métodos, você alcança o encapsulamento e o controle sobre as propriedades de fora.

Visibilidade de propriedades em PHP – público, privado e protegido

4. Entendendo o modificador protected

Agora vamos considerar o modificador protected. Isso fornece classes que herdam de outras classes o acesso a certas propriedades. Isso significa que subclasses podem continuar a usar ou sobrescrever um método ou propriedade específica.

Visibilidade de propriedades em PHP – público, privado e protegido

Neste caso, o CarroDeCorrida pode acessar a propriedade protegida, enquanto classes externas não podem. Isso permite codificar um comportamento direcionado para classes derivadas.

5. Decidindo sobre a visibilidade

Uma decisão importante que você deve tomar diz respeito à visibilidade de suas propriedades. Em geral, você deve usar private, a menos que seja óbvio que uma propriedade é necessária dentro de uma herança. Nesse caso, escolha protected.

Visibilidade de propriedades em PHP – público, privado e protegido

Lembre-se de que, se você estiver em uma fase de manutenção ou trabalhando em uma nova funcionalidade, ainda pode alterar seus controles de acesso mais tarde, caso seja necessário.

Resumo – Visibilidade em propriedades: public, private e protected em PHP

A visibilidade das propriedades em PHP é fundamental para a compreensão do encapsulamento de dados e da programação orientada a objetos. Com os modificadores public, private e protected, você pode obter precisão e controle sobre o acesso às propriedades e métodos em suas classes. Ao aplicar corretamente esses princípios, você melhora significativamente a manutenibilidade e a segurança do seu código.

Perguntas Frequentes

O que significa public em PHP?public significa que a propriedade ou método é acessível de qualquer lugar.

O que significa private em PHP?private significa que a propriedade ou método só pode ser chamado pela própria classe.

O que significa protected em PHP?protected significa que a propriedade ou método pode ser chamado pela própria classe e por classes derivadas.

Quando devo usar private?Você deve usar private por padrão para maximizar a visibilidade e o controle.

Quando posso alterar para protected?Mude para protected quando uma propriedade for necessária dentro de classes derivadas e você quiser impedir o acesso externo.