QUESTÃO 10
Analise o código a seguir e, depois, responda ao que é solicitado.
class Carro {
String cor = "branco";
void mudaCor(String cor){
this.cor = cor;
}
}
class Pessoa {
final Carro carro = new Carro();
void mudaCorDoCarro(String cor){
carro.mudaCor(cor);
}
}
O que o código acima indica? Marque alternativa correta.
Alternativas
Alternativa 1:
O código atual não possibilita indicar nenhum comportamento.
Alternativa 2:
Que uma pessoa pode trocar de carro e pode trocar a cor do carro.
Alternativa 3:
Que uma pessoa não pode trocar de carro, mas pode trocar a cor do carro.
Alternativa 4:
Que uma pessoa não pode trocar de carro e não pode trocar a cor do carro.
Alternativa 5:
Que uma pessoa pode trocar de carro, mas um carro não pode trocar de cor.
Soluções para a tarefa
Resposta:
Alternativa 3:
Que uma pessoa não pode trocar de carro, mas pode trocar a cor do carro.
Explicação:
A classe Carro declara a variável cor recebendo "branco" e usa um parâmetro
"void mudaCor(String cor){
this.cor = cor;
}" para se referir à variável cor.
Na classe Pessoa é declarada uma constante do tipo Carro chamada carro,
com todos os atributos contidos na classe Carro(tipo Struct); como o carro
é uma constante(final), então ele não pode assumir outra forma, portanto
a classe Pessoa não pode alterar ou mudar o carro.
A classe Pessoa, ainda declara um método
"void mudaCorDoCarro(String cor){
carro.mudaCor(cor);
}" permitindo que a variável carro, declarado na classe Pessoa,
receba a variável cor como no exemplo de uma possível linha adicional
"System.out.println(carro.cor);", para mostrar o resultado da atribuição
da variável cor à variável carro, ou seja, mostrar a possibilidade de mudar a cor do carro.