O que deve ser mostrado com a execução de $jose->MostraIn...
Para responder às questões 49 a 52, observe o Quadro 1.
<?php
class Pessoa{
var $codigo;
var $nome;
var $idade;
var $salario;
public function __construct($cod, $nom,
$ida, $sal) {
$this->codigo = $cod;
$this->nome = $nom;
$this->idade = $ida;
$this->salario = $sal;
}
function setCodigo($cod){
$this->codigo = $cod;
}
function setSalario($sal){
$this->salario = $sal;
}
function MostraInfo(){
print $this->nome.' tem '.$this->idade.'
anos e tem salario R$ '.$this-
>salario.'.<BR>';
}
function Aniversario(){
$this->idade++;
}
function AumentaDez(){
$this->salario = $this->salario * 1.1;
}
function AumentaVinte(){
$this->salario = $this->salario * 1.2;
}
}
$maria = new Pessoa(1, 'Maria Pereira', 31,
2000);
$jose = new Pessoa(2, 'Jose Oliveira', 23,
4000);
$maria->Aniversario();
$jose->AumentaVinte();
$maria->AumentaVinte();
$maria->SetCodigo(7);
$jose->MostraInfo(); // Primeira questão
$maria->SetCodigo(4);
$maria->MostraInfo(); // Segunda questão
$maria->SetCodigo(3);
$maria->Aniversario();
$jose->Aniversario();
$maria->SetSalario(4000);
$maria->MostraInfo(); // Terceira questão
$maria->AumentaDez();
$jose->Aniversario();
$jose->MostraInfo(); // Quarta questão
?>
Quadro 1: Código PHP
O que deve ser mostrado com a execução de $jose->MostraInfo(); // Primeira questão?
- Gabarito Comentado (1)
- Aulas (1)
- Comentários (0)
- Estatísticas
- Cadernos
- Criar anotações
- Notificar Erro
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Gabarito: Alternativa A
Vamos entender como chegamos a essa resposta analisando o código PHP fornecido.
A questão essencial aqui é a manipulação de objetos em PHP e como os métodos alteram os atributos desses objetos. Neste caso, estamos lidando com a classe Pessoa, que tem atributos como código, nome, idade e salário.
Primeiro, vamos relembrar o que acontece com o objeto $jose antes da execução de $jose->MostraInfo();:
- Inicialmente, $jose é criado com idade 23 e salário 4000:
$jose = new Pessoa(2, 'Jose Oliveira', 23, 4000);
- O método
AumentaVinte()
é chamado em $jose, aumentando o salário em 20%:$jose->AumentaVinte();
O cálculo do aumento de 20% sobre 4000 resulta em:
Salário após aumento: 4000 * 1.2 = 4800
Então, antes da execução de $jose->MostraInfo();, os atributos de $jose são:
- Idade: 23
- Salário: 4800
Portanto, quando o método MostraInfo()
é chamado, ele imprime:
Jose Oliveira tem 23 anos e tem salario R$ 4800.
Assim, a alternativa correta é A.
Analisando as alternativas incorretas:
- B: Jose Oliveira tem 23 anos e tem salario R$ 2400. - Salário incorreto; o aumento foi de 20%, não de 10%.
- C: Jose Oliveira tem 24 anos e tem salario R$ 4000. - Idade e salário incorretos; idade não foi alterada neste ponto e o salário foi atualizado para 4800.
- D: Jose Oliveira tem 24 anos e tem salario R$ 4400. - Idade e salário incorretos; idade permanece 23 e o salário foi para 4800.
- E: Jose Oliveira tem 25 anos e tem salario R$ 4800. - Idade incorreta; idade permanece 23.
Gostou do comentário? Deixe sua avaliação aqui embaixo!
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo