Considerando o trecho de programa Java mostrado acima, julgu...
int cadence = 0;
int speed = 0;
int gear = 1;
void changeCadence(int newValue) {
cadence = newValue;
}
void changeGear(int newValue) {
gear = newValue;
}
void speedUp(int increment) {
speed = speed + increment;
}
void applyBrakes(int decrement) {
speed = speed - decrement;
}
void printStates() {
System.out.println(“cadence:“+cadence+”speed:
“+speed+”gear:“+gear);
}
}
class BicycleDemo {
public static void main(String[] args) {
Bicycle bike1 = new Bicycle();
Bicycle bike2 = new Bicycle();
bike1.changeCadence(50);
bike1.speedUp(10);
bike1.changeGear(2);
bike1.printStates();
bike2.changeCadence(50);
bike2.speedUp(10);
bike2.changeGear(2);
bike2.changeCadence(40);
bike2.speedUp(10);
bike2.changeGear(3);
bike2.printStates();v }
}
Ao final da execução desse trecho de programa, serão impressos os seguintes valores para bike1.
cadence:50 speed:10 gear:2
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Gabarito: C - certo
Explicação:
Para resolver essa questão, é necessário entender os conceitos de orientação a objetos em Java, particularmente como instâncias de classes (objetos) são criadas e manipuladas. A classe Bicycle é uma representação de uma bicicleta com métodos para alterar suas propriedades, como cadência, velocidade e marcha.
Ao analisarmos o trecho de código fornecido para a instância bike1, vemos que os métodos são chamados em sequência para modificar o estado dessa instância:
- O método changeCadence(50) define o valor de cadência para 50.
- O método speedUp(10) aumenta a velocidade em 10, portanto, a velocidade é agora 10 (inicialmente era 0).
- O método changeGear(2) define a marcha para 2.
Com essas chamadas de métodos, o estado final de bike1 antes de chamar o método printStates() é:
- Cadência: 50
- Velocidade: 10
- Marcha: 2
O método printStates() então imprime os valores das propriedades da bicicleta, o que significa que a saída para o objeto bike1 será "cadence:50 speed:10 gear:2". Logo, a alternativa C - certo está correta, pois os estados impressos correspondem exatamente aos estados finais do objeto bike1 após a execução dos métodos listados acima.
Essa questão é um exemplo prático do uso de classes e objetos em Java, demonstrando como métodos são utilizados para alterar o estado interno de um objeto e como essas mudanças refletem quando o estado é consultado ou exibido.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo