New game
Download
Get Academic Plan
Share game
Integrate it into your platform

You can integrate the game into an LMS compatible with LTI 1.1 or LTI 1.3 such as Canvas, Moodle, or Blackboard. This way, the scores will be automatically saved into the platform’s gradebook.
Download
You have exceeded the maximum number of games you can integrate into Google Classroom with your current Plan.

To integrate as many games as you want in Google Classroom, you need an Academic Plan or a Commercial Plan.

You have exceeded the maximum number of games you can integrate into Microsoft Teams with your current Plan.

To integrate as many games as you want in Microsoft Teams, you need an Academic Plan or a Commercial Plan.

Downloading games is an exclusive feature for users with an Academic Plan or a Commercial Plan.

Get your Academic Plan or your Commercial Plan now and start integrating your games into your LMS, website or blog.

If you wish, you can download a demo game here and test its integration:

Test Examen Java ☕ { T2 && T4 }

Quiz

Played 1

About this activity

Test de Java 21 para estudiantes de programación (Programación orientada a objetos y Arrays unidimensionales y matrices) {CV.A + JM}

Created by

Spain

Download the paper version to play

Make your own free game from our game creator
Compete against your friends to see who gets the best score in this game

Top Games

%
%
%
%
You have exceeded the maximum number of games you can print with your current Plan.

To print as many games as you want, you need an Academic Plan or a Commercial Plan.

Print your game
Test Examen Java ☕ { T2 && T4 }
 

Test Examen Java ☕ { T2 && T4 }Online version

Test de Java 21 para estudiantes de programación (Programación orientada a objetos y Arrays unidimensionales y matrices) {CV.A + JM}

by Juan Manuel Torres Martínez
1
Si un array está declarado como Carta[] c = new Carta[40], explica qué ocurre si intentamos ejecutar la asignación c[39] = new Carta("rey", "bastos"); Supón que tenemos el siguiente objeto de tipo Carta (ver imagen)

Si un array está declarado como Carta[] c = new Carta[40], explica qué ocurre si intentamos ejecutar la asignación c[39] = new Carta("rey", "bastos"); Supón que tenemos el siguiente objeto de tipo Carta (ver imagen)

2
Di qué error de compilación producirá la siguiente sentencia

Di qué error de compilación producirá la siguiente sentencia

3

El array bidimensional int[][] a = new int[2][5];

4

En Java, ¿cómo se accede al tercer elemento de un array ESTÁTICO llamado numeros?

5
El siguiente código intenta inicializar a 0 todas las posiciones de un array a de enteros de tamaño A x B. ¿Hay algún error?

El siguiente código intenta inicializar a 0 todas las posiciones de un array a de enteros de tamaño A x B. ¿Hay algún error?

6
¿Qué sale por la pantalla al ejecutar este programa?

¿Qué sale por la pantalla al ejecutar este programa?

7
¿Qué sale por la pantalla al ejecutar este programa?

¿Qué sale por la pantalla al ejecutar este programa?

8
¿Qué sale por la pantalla al ejecutar este código?

¿Qué sale por la pantalla al ejecutar este código?

9
Dada la siguiente clase, ¿qué imprimirá la consola, si desde el método main ejecutamos el siguiente código?

Dada la siguiente clase, ¿qué imprimirá la consola, si desde el método main ejecutamos el siguiente código?

10
Dada la siguiente clase, ¿cuáles de estos códigos se ejecutará correctamente, sin producir un error de compilación?

Dada la siguiente clase, ¿cuáles de estos códigos se ejecutará correctamente, sin producir un error de compilación?

11
Dada la siguiente clase, ¿cuál sería la salida por pantalla correcta?
💡 Nota: El método imprimirAtributos() está correctamente implementado y solo es necesario conocer su documentación para resolver esta pregunta

Dada la siguiente clase, ¿cuál sería la salida por pantalla correcta? 💡 Nota: El método imprimirAtributos() está correctamente implementado y solo es necesario conocer su documentación para resolver esta pregunta

12
Dada la siguiente clase, ¿qué versión del método imprimirAtributos() de la clase MiClase, debemos implementar para obtener la siguiente salida en consola?

Dada la siguiente clase, ¿qué versión del método imprimirAtributos() de la clase MiClase, debemos implementar para obtener la siguiente salida en consola?

13
Dada la siguiente clase, ¿qué le falta a la clase MiClase para obtener la siguiente salida por consola?

Dada la siguiente clase, ¿qué le falta a la clase MiClase para obtener la siguiente salida por consola?

14
Dada la clase MiClase, ¿qué versión del método setMiTexto() obtiene la siguiente salida por consola?

Dada la clase MiClase, ¿qué versión del método setMiTexto() obtiene la siguiente salida por consola?

15
Dada la clase Persona, ¿cuál es la forma más corta en el main de crear un objeto persona con todos sus atributos rellenados e imprimirlo por consola?

Dada la clase Persona, ¿cuál es la forma más corta en el main de crear un objeto persona con todos sus atributos rellenados e imprimirlo por consola?

Explicación

✏️ Explicación: Ya que los arrays comienzan siempre su primera posición por 0, si su tamaño es 40, la última posición será 39

✏️ Explicación: Se produce un error de compilación, ya que el méto-do Integer.parseInt() recibe un String y devuelve un int. Este resultado int lo estamos intentando guardar en una variable de tipo String en vez de en una, de tipo int. Error exacto 🔴: "java: incompatible types: int cannot be converted to java.lang.String" 💡 Nota: Si lo ejecutamos desde el IntelliJ o cualquier IDE dará un error NullPointerException, al ser una consola simulada. Para probarlo bien, desde el cmd, ejecuta para compilar: -> javac Pregunta2.java y para ejecutar: -> java Pregunta2.java

✏️ Explicación: En una matriz siempre su tamaño es [filas][columnas]. Podemos realizar comprobaciones con el siguiente código: int[][] a = new int[2][5]; System.out.println("a = " + Arrays.deepToString(a)); System.out.println("La matriz tiene [" + a.length + "] filas"); System.out.println("La matriz tiene [" + a[0].length + "] columnas"); System.out.println("El número total de elementos es [" + (a.length * a[0].length) + "]");

✏️ Explicación: Debido a que la primera posición de un array es 0, la 3º, sería una menos (2) numeros[0] = 1 numeros[1] = 2 numeros[2] = 3 numeros[3] = 4 numeros[4] = 5 numeros[2] = 3

✏️ Explicación: El código es correcto, la única diferencia es que se rellenarán primero, las columnas, en vez de las filas, pero la matriz quedará al completo inicializada. 💡 Nota: Para entender mejor esto último, haz debug 🪲, en esta línea "a[f][c] = 1;" para ver como se rellena la matriz. Podemos poner un número distinto de cero, como por ejemplo, 1, para comprobar si se está inicializando realmente bien, ya que al usar el primitivo int, java, inicializará la matriz a 0, por lo que es más difícil comprobar si la estamos inicializando bien.

✏️ Explicación: Se imprime el mismo texto que el original, esto ocurre debido al tipo de méto-do de replaceAll(). Este es, de tipo String, no es void, por tanto, lo que hace es producir un tipo de dato de tipo String, el cual, sino se guarda en una variable o se imprime por consola, el resultado de este, se pierde, que es lo ocurre en este código.

✏️ Explicación: Se produce un error de compilación, ya que el objeto StringBuilder, no se puede inicializar directamente con = "". Podría corregirse con "new StringBuilder("Que la fuerza te acompañe");"

✏️ Explicación: En este caso, aunque el méto-do reverse() es de tipo StringBuilder y no void, este sí que afecta al objeto que lo llamó a diferencia del String, esto ocurre porque el objeto StringBuilder es mutable, lo cual, significa que se puede modificar el objeto ya creado. Mientras que String es inmutable, esto quiere decir, que los objetos String no se pueden modificar una vez creados, hay que crear otros nuevos o hacer una reasignación (s = s.replaceAll(" ", "");) para que afecte el resultado

✏️ Explicación: Si no creamos un constructor por defecto, Java lo creará, por tanto, la primera línea funciona. La segunda línea imprime el valor 0.0, ya que el método getMiAtributo2() obtiene el valor de una variable primitiva (no puede ser null) de tipo float, esta se corresponde con el atributo "miAtributo2" de la clase "MiClase". Al no haber inicializado el valor del atributo "private float miAtributo2;", Java lo inicializa con el valor por defecto, para este tipo de dato, que es 0.0

✏️ Explicación: Tanto el código 1 y 2 acceden correctamente al atributo estático con la sintáxis NombreClase.metodoEstatico(). Respecto al acceso a los atributos no estáticos, ambas sintaxis son correctas. "nombreDeVariableDeUnaInstanciaDeLaClase.metodoNoEstatico()" permite utilizar el mismo objeto más tarde, mientras que "instanciaDeLaClase.metodoNoEstatico()" solo se puede utilizar una vez. El código 3 produce un error de compilación al intentar acceder a un atributo no estático a través de la clase. Respecto a esta otra línea "miObjeto2.getMiAtributo1()", aunque no es buena práctica, si compila y funciona. - El código 1, en este caso, se ha guardado el objeto en la variable "miObjeto1" para utilizarlo más de una vez, si fuera necesario. - El código 2, en este caso, se ha creado una instancia de la clase y se ha utilizado al mismo tiempo, no se ha guardado en una variable, por lo que no se podrá utilizar más adelante. - El código 3, en este caso, se ha guardado el objeto en la variable "miObjeto2" para utilizarlo más de una vez, si fuera necesario.

✏️ Explicación: La opción correcta es la salida 3, debido a que "miAtributo1" es estático, por lo que solo podremos guardar el último valor del set. Mientras que, del atributo "miAtributo2", no es estático, por lo que podremos tener tantos valores como objetos creemos.

✏️ Explicación: En el bucle con "arrayObjetos[i]" accedemos a cada objeto de tipo MiClase del array y con ".getMiAtributo2()" accedemos a los valores de "miAtributo2" de cada objeto enviado desde el main 💡 La opción del método, toString(), no es válida, ya que no está implementado en nuestra clase MiClase, por lo que Java usará el de la clase Object, que no tiene el mismo formato que aparece en la salida de consola

✏️ Explicación: - El constructor por defecto + arrayObjetos[i].toString() en el método imprimirAtributos() (Comprobar el código de la imagen) 💡 No es correcto, ya que no se sobrescribe el método toString() (se llama al de la clase Object) - El constructor por defecto + sobrescribir el método toString() utilizando super (Comprobar el código de la imagen) 💡 No es correcto, ya que, aunque se sobrescribe el método toString() se utiliza la palabra reservada super.toString(), provocando que se vuelva a llamar al método toString() de la clase Object - El método setMiTexto() + sobrescribir el método toString() (Comprobar el código de la imagen) 💡 El método setMiTexto() no se utiliza desde el main, por tanto, el atributo "miTexto" se queda en null

✏️ Explicación: - Versión 1 💡 Al coincidir el nombre del parámetro del método set con el nombre del atributo, se asigna así mismo y la asignación no surte efecto. "miTexto" se queda en null - Versión 2 💡 Al no coincidir el nombre del parámetro del método set con el nombre del atributo, se asigna el valor del parámetro al atributo funcionando así la asignación correctamente (this, sería opcional). - Versión 3 💡 Aunque coinciden el nombre del parámetro del método set con el nombre del atributo, se asigna el valor del parámetro al atributo funcionando así la asignación correctamente (ya que se utiliza this para hacer referencia al atributo).

✏️ Explicación: La forma más rápida es usar el constructor con todos los argumentos, sin crear variable, ya que, solo queremos imprimir el objeto, no necesitamos utilizarlo más adelante.