Questão de Programação — Programação Orientada a Objetos — FUNDATEC 2025
Programação›Programação Orientada a Objetos
Código
qg472868
Banca
FUNDATEC
Órgão
IF Sertão - PE
Ano
2025
Nível
Superior
Cargo
Analista de Tecnologia da Informação
Com base no código PHP abaixo, analise as assertivas a seguir, assinalando V, se verdadeiras, ou F, se falsas.( ) A propriedade “$nome” está acessível diretamente fora da classe, pois é um atributo privado.( ) O método “setNome” permite atribuir um valor à propriedade “$nome” de forma segura, seguindo o princípio do encapsulamento.( ) A palavra-chave “private” impede o acesso ao atributo “nome”diretamentepormeiodoobjeto“p”.( ) O operador “$this->” é utilizado dentro da classe para referenciar os membros da própria instância.( ) O código imprime a palavra "João" na tela.A ordem correta de preenchimento dos parênteses, de cima para baixo, é:
AF – V – V – V – V.
BV – F – F – V – V.
CF – V – V – F – V.
DV – V – F – F – F.
EF – F – V – V – F
Revelar gabarito e comentário▾
GabaritoA — F – V – V – V – V.
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
Encapsulamento e modificadores de acesso em PHP
Gabarito: letra A — sequência F – V – V – V – V. A primeira assertiva é falsa porque um atributo private é justamente o oposto de "acessível diretamente fora da classe"; as demais são verdadeiras, pois descrevem corretamente o encapsulamento, a restrição de acesso e o uso de $this-> no PHP.
O encapsulamento é um dos pilares da programação orientada a objetos. Ele consiste em esconder os atributos de uma classe e controlar o acesso a eles por meio de métodos públicos, normalmente chamados de getters e setters. No PHP, isso é feito com os modificadores de acesso public, protected e private. Um atributo private só pode ser acessado ou modificado dentro da própria classe — qualquer tentativa de acesso direto de fora, como $p->nome, gera um erro fatal. O método setNome é a porta de entrada segura: ele recebe um valor e o atribui à propriedade, permitindo inclusive validar o dado antes de armazená-lo. Já o operador $this-> é a forma de referenciar, dentro da classe, os membros (atributos e métodos) da instância atual — é o equivalente ao this de Java ou ao self de Python.
Na prática, imagine a classe Pessoa com o atributo private $nome e o método public function setNome($nome) { $this->nome = $nome; }. Ao criar $p = new Pessoa(); e chamar $p->setNome("João");, o valor é armazenado com segurança. Para exibir, um método getNome() retornaria $this->nome. O código do enunciado, ao final, imprime "João" na tela, pois o método setNome foi chamado com esse valor e o echo exibe o retorno de getNome().
A distinção que importa aqui é entre private e public: enquanto public permite acesso direto de qualquer lugar, private restringe o acesso à própria classe. É exatamente essa fronteira que a banca explora na primeira assertiva — ela inverte o efeito do modificador, afirmando que um atributo privado é acessível fora da classe, quando na verdade é o contrário. Guarde essa regra: private = acesso somente dentro da classe; public = acesso de qualquer lugar; protected = acesso na classe e nas subclasses.
Assertiva 1 — ❌ Falsa
Afirma que a propriedade $nome está acessível diretamente fora da classe "pois é um atributo privado". Isso é um contrassenso: o modificador private existe justamente para impedir o acesso direto de fora da classe. Se fosse public, o acesso direto seria permitido. A banca inverteu o efeito do modificador — armadilha clássica de troca de termo.
Assertiva 2 — ✅ Verdadeira
O método setNome é um setter: um método público que permite atribuir um valor à propriedade $nome de forma controlada e segura, seguindo o princípio do encapsulamento. Ele pode, por exemplo, validar o dado antes de armazená-lo, o que não seria possível com acesso direto ao atributo.
Assertiva 3 — ✅ Verdadeira
A palavra-chave private impede o acesso ao atributo $nome diretamente por meio do objeto $p. Qualquer tentativa de $p->nome fora da classe resultaria em erro fatal, pois o atributo só é visível dentro da própria classe.
Assertiva 4 — ✅ Verdadeira
O operador $this-> é utilizado dentro da classe para referenciar os membros (atributos e métodos) da própria instância. É a forma de distinguir o atributo da instância de uma variável local ou parâmetro com o mesmo nome.
Assertiva 5 — ✅ Verdadeira
O código imprime a palavra "João" na tela, pois o método setNome("João") foi chamado e o echo exibe o retorno de getNome(), que retorna $this->nome.
NÃO CAIA NESSA!
A banca adora inverter o efeito dos modificadores de acesso. Aqui, a primeira assertiva afirma que um atributo private é acessível fora da classe — exatamente o oposto do que o modificador faz. Lembre-se: private = acesso somente dentro da classe; public = acesso de qualquer lugar; protected = acesso na classe e nas subclasses. Com treino, você enxerga essas trocas de longe 💪
PEGA ESSA DICA!
Para questões de POO, monte uma tabela mental dos modificadores de acesso e seus efeitos. Isso resolve rapidamente qualquer assertiva sobre encapsulamento.