O que deve ser impresso com a execução de $maria->MostraD...

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

Para responder às questões 21 a 25, analise o código mostrado no Quadro 1.


<?php

class Pessoa{

var $codigo;

var $nome;

var $idade;

var $endereco;

var $salario;

public function __construct($cod, $nom, $ida,

$end, $sal) {

$this->codigo = $cod;

$this->nome = $nom;

$this->idade = $ida;

$this->endereco = $end;

$this->salario = $sal;

}

function setCodigo($cod){

$this->codigo = $cod;

}

function setEndereco($end){

$this->endereco = $end;

}

function setSalario($sal){

$this->salario = $sal;

}

function MostraDados(){

print $this->nome.' tem '.$this->idade.' anos,

mora na rua '.$this->endereco.' e tem salario R$

'.$this->salario.'.';

}

function MostraCodigo(){

print $this->nome.' possui o codigo '.$this-

>codigo.'.';

}

function Aniversario(){

$this->idade++;

}

function AumentaCinco(){

$this->salario = $this->salario * 1.05;

}

function AumentaDez(){

$this->salario = $this->salario * 1.1;

}

}


$maria = new Pessoa(1, 'Maria Pereira', 31, 'Av. C,

394', 3000);

$jose = new Pessoa(2, 'Jose Oliveira', 23, 'Rua A,

106', 2000);

$maria->Aniversario();

$jose->AumentaCinco();

$maria->AumentaDez();

$maria->SetCodigo(5);

$jose->MostraDados(); // Primeira questão

$maria->SetCodigo(4);

$maria->MostraDados(); // Segunda questão

$maria->MostraCodigo(); // Terceira questão

$maria->SetCodigo(3);

$maria->Aniversario();

$maria->SetSalario(4000);

$jose->SetEndereco('Rua das Laranjeiras, 32');

$maria->MostraDados(); // Quarta questão

$jose->MostraDados(); // Quinta questão

?>


Quadro 1- Código PHP.

O que deve ser impresso com a execução de $maria->MostraDados(); // Segunda questão?

Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Vamos entender o código e a execução detalhadamente para encontrar a resposta correta.

Para resolver esta questão, precisamos analisar o código PHP fornecido e entender como os métodos da classe Pessoa são aplicados aos objetos $maria e $jose. A questão exige a saída do método MostraDados() para o objeto $maria após várias operações.

A alternativa correta é a:

E - Maria Pereira tem 32 anos, mora na rua Av. C, 394 e tem salário R$ 3300.

Agora, vamos justificar por que essa é a resposta correta e por que as outras alternativas estão incorretas.

Análise do Código:

1. $maria = new Pessoa(1, 'Maria Pereira', 31, 'Av. C, 394', 3000);

Isso cria um objeto maria com os atributos iniciais: código 1, nome "Maria Pereira", idade 31, endereço "Av. C, 394" e salário 3000.

2. $maria->Aniversario();

O método Aniversario() incrementa a idade de Maria em 1. Portanto, a idade de Maria agora é 32.

3. $maria->AumentaDez();

O método AumentaDez() aumenta o salário de Maria em 10%. O novo salário de Maria é 3000 * 1.1 = 3300.

4. $maria->SetCodigo(5);

O método SetCodigo() altera o código de Maria para 5.

5. $maria->MostraDados();

Este método imprime as informações atualizadas de Maria: nome, idade, endereço e salário.

Justificativas das Alternativas:

A - "Maria tem 32 anos, mora na rua Av. C, 394 e tem salário R$ 3300."

Incorreto: O nome "Maria" está incompleto. Deveria ser "Maria Pereira".

B - "Maria tem 33 anos, mora na rua Av. C, 394 e tem salário R$ 3330."

Incorreto: A idade está incorreta, pois Maria fez apenas um aniversário, passando de 31 para 32 anos. O salário também está incorreto.

C - "Maria Pereira tem 31 anos, mora na rua Av. C, 394 e tem salário R$ 3000."

Incorreto: A idade e o salário não foram atualizados. Maria fez aniversário e recebeu aumento, então a idade deve ser 32 e o salário R$ 3300.

D - "Maria Pereira tem 31 anos, mora na Rua das Laranjeiras, 32 e tem salário R$ 3300."

Incorreto: O endereço está incorreto. Maria nunca teve seu endereço alterado para "Rua das Laranjeiras, 32".

E - "Maria Pereira tem 32 anos, mora na rua Av. C, 394 e tem salário R$ 3300."

Correto: Todas as informações estão corretas: Nome, idade, endereço e salário atualizados conforme as operações realizadas no código.

É crucial seguir passo a passo as operações realizadas no código para entender como os valores dos atributos são atualizados e garantir a precisão na resolução da questão.

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