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 bike2.
cadence:50 speed:20 gear:3
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: E - errado
A questão pede para avaliar o estado final do objeto bike2 após a execução do trecho de código fornecido. Para determinar isso, é necessário entender o funcionamento das operações realizadas sobre o objeto. Vamos examinar o que ocorre passo a passo com bike2:
- Inicialização: Quando um novo objeto Bicycle é criado, seus atributos são inicializados com os valores cadence = 0, speed = 0 e gear = 1.
- Primeira alteração:
bike2.changeCadence(50);
muda a cadência para 50. - Segunda alteração:
bike2.speedUp(10);
aumenta a velocidade em 10, levando à speed = 10. - Terceira alteração:
bike2.changeGear(2);
muda a marcha para 2. - Quarta alteração:
bike2.changeCadence(40);
muda a cadência novamente, agora para 40. - Quinta alteração:
bike2.speedUp(10);
novamente aumenta a velocidade em 10, resultando em speed = 20 (pois já estava em 10 e foi aumentada mais 10). - Sexta alteração:
bike2.changeGear(3);
finalmente muda a marcha para 3.
Com base nessas operações, o estado final de bike2 será cadence = 40, speed = 20 e gear = 3.
Portanto, a afirmação de que os valores finais seriam cadence:50 speed:20 gear:3 está errada, porque a cadência final é 40, não 50.
O conhecimento necessário para resolver essa questão envolve a compreensão de conceitos básicos de programação orientada a objetos, como classes, métodos, objetos e a manipulação de atributos de um objeto em Java. Cada operação realizada no objeto bike2 é cumulativa e afeta o estado do objeto conforme definido pelos métodos da classe Bicycle.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo