Os comandos das linhas 24 e 25 implementam uma chamada a con...
2 int cadence = 0;
3 int speed = 0;
4 int gear = 1;
5 void changeCadence(int newValue) {
6 cadence = newValue;
7 }
8 void changeGear(int newValue) {
9 gear = newValue;
10 }
11 void speedUp(int increment) {
12 speed = speed + increment;
13 }
14 void applyBrakes(int decrement) {
15 speed = speed - decrement;
16 }
17 void printStates() {
18 System.out.println("cadence: "+cadence+" speed: "+speed+" gear: "+gear);
19 }
20 }
21 class BicycleDemo {
22 public static void main(String[ ] args) {
23 // Cria dois objetos Bicycle diferentes
24 Bicycle bike1 = new Bicycle( );
25 Bicycle bike2 = new Bicycle( );
26 // Invoca os métodos desses objetos
27 bike1.changeCadence(50);
28 bike1.speedUp(10);
29 bike1.changeGear(2);
30 bike1.printStates();
31
32 bike2.changeCadence(50);
33 bike2.speedUp(10);
34 bike2.changeGear(2);
35 bike2.changeCadence(40);
36 bike2.speedUp(10);
37 bike2.changeGear(3);
38 bike2.printStates( );
39 }
40 }
Considerando o código Java acima, julgue os itens a seguir, acerca da programação orientada a objetos.
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: E - Errado
A questão aborda o conceito de construtores em uma classe Java. Os construtores são métodos especiais que têm por finalidade inicializar objetos recém-criados e têm o mesmo nome da classe a qual pertencem. Um aspecto fundamental dos construtores é que eles não possuem um tipo de retorno, nem mesmo void
, e isso inclui que eles não têm um retorno explicitado na sua assinatura.
Observando as linhas 24 e 25, podemos ver a criação de dois objetos da classe Bicycle
utilizando new Bicycle()
. Esse é um exemplo clássico de chamada ao construtor padrão, que é o construtor fornecido pela linguagem Java quando nenhum construtor é explicitamente definido na classe.
O enunciado da questão faz uma afirmação incorreta ao dizer que os construtores possuem "nome distinto do nome da classe", pois, na verdade, o nome do construtor é sempre o mesmo que o da classe. Além disso, a afirmação de que a assinatura de um construtor não deve possuir nenhum tipo de retorno é parcialmente verdadeira, pois de fato não deve ter um tipo de retorno, mas a frase dá a entender que poderia ter um nome diferente do da classe, o que é incorreto.
Portanto, a alternativa E está correta porque a afirmação de que os construtores possuem um nome distinto do nome da classe está errada, e porque a assinatura de um construtor realmente não tem nenhum tipo de retorno.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo