O que deve ser mostrado com a execução de $jose->MostraIn...

Próximas questões
Com base no mesmo assunto
Q2758433 Arquitetura de Software

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?

Alternativas

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