Sobes.tech
Junior — Middle

O que significam e quais são os níveis de acesso aos elementos na programação orientada a objetos?

sobes.tech IA

Resposta da IA

Na programação orientada a objetos (POO), os níveis de acesso determinam quais partes do programa podem aceder a certos elementos de uma classe (propriedades e métodos). Em PHP, existem três níveis principais de acesso:

  1. public — os elementos são acessíveis de qualquer lugar, tanto dentro como fora da classe.
  2. protected — os elementos são acessíveis apenas dentro da própria classe e dos seus herdeiros.
  3. private — os elementos são acessíveis apenas dentro da própria classe onde são declarados, e não nos herdeiros nem de fora.

Exemplo:

class Example {
    public $publicVar = 'public';
    protected $protectedVar = 'protected';
    private $privateVar = 'private';

    public function testAccess() {
        echo $this->publicVar;    // Disponível
        echo $this->protectedVar; // Disponível
        echo $this->privateVar;   // Disponível
    }
}

class ChildExample extends Example {
    public function testAccess() {
        echo $this->publicVar;    // Disponível
        echo $this->protectedVar; // Disponível
        // echo $this->privateVar; // Erro: não acessível
    }
}

$obj = new Example();
echo $obj->publicVar;      // Disponível
// echo $obj->protectedVar; // Erro
// echo $obj->privateVar;   // Erro

Assim, os níveis de acesso ajudam a encapsular dados e a controlar a sua visibilidade.