RSS

JP – Declaration and Access Control Questions – Soluciones y Explicación

30 Ago

Seguimos con las siguientes cuestiones de JavaPrepare.

Del tema declaración y control de acceso tenemos el siguiente test. Si queréis realizarlo tranquilamente sin ver la solución bajo cada pregunta está aquí.

Este test es más corto de los anteriores y las preguntas tratan sobre declaración e inicialización de arrays, la correcta declaración de métodos y métodos sobrecargados.

1. Given a one dimensional array arr, what is the correct way of getting the number of elements in arr. Select the one correct answer.
a) arr.length
b) arr.length – 1
c) arr.size
d) arr.size – 1
e) arr.length()
f) arr.length() – 1

Para los arrays length es un atributo y no una función y devuelve el número de elementos.
a) Correcta.

2. Which of these statements are legal. Select the three correct answers.
a) int arr[][] = new int[5][5];
b) int []arr[] = new int[5][5];
c) int[][] arr = new int[5][5];
d) int[] arr = new int[5][];
e) int[] arr = new int[][5];

a) b) c) Correctos
d) Incorrecto por la declaración, le falta otro corchete para indicar que tiene dos dimensiones. Sería correcto así int[][] arr = new int[5][];

e) Incorrecto por la declaración y la asignación de memoria, no se puede especificar la ultima dimension sin especificar la primera.
Sería correcto así: int [][] arr = new int[5][]; o  int [][]arr = new int [5][5];

3. Write the expression to access the number of elements in a one dimensional array arr. The expression should not be assigned to any variable.

arr.length

4. Which of these array declarations and initializations are legal? Select the two correct answers.
a) int arr[4] = new int[4];
b) int[4] arr = new int[4];
c) int arr[] = new int[4];
d) int arr[] = new int[4][4];
e) int[] arr = new int[4];

c) y e) Correctas.

a) Incorrecta. No se puede especificar tamaño en la declaración del array. Sería correcto int arr[] = new int[4];

b) Incorrecta. No se puede especificar tamaño en la declaración del array. Sería correcto int[] arr = new int[4];

d) Incorrecta. No coincide la dimensión del array en la declaración con la dimensión en la asignación de memoria.
Sería correcto int[] arr = new int[4]; o  int[][] arr = new int[4][4];

5. What will the result of compiling and executing the following program. Select the one correct answer.

class Test {
    public static void main(String args[]) {
        int arr[] = new int[2];
        System.out.println(arr[0]);
    }
}

a) The program does not compile because arr[0] is being read before being initialized.
b) The program generates a runtime exception because arr[0] is being read before being initialized.
c) The program compiles and prints 0 when executed.
d) The program compiles and prints 1 when executed.
e) The program compiles and runs but the results are not predictable because of un-initialized memory being read.

c) Correcta. El programa compila, ejecuta e imprime 0. Esto se debe a que los arrays inicializan sus valores al valor por defecto del tipo siempre, aunque sean variables locales.

6. Which of the following are legal declaration and definition of a method. Select all correct answers.
a) void method() {};
b) void method(void) {};
c) method() {};
d) method(void) {};
e) void method {};

a) Correcta.
b) Tipo void incorrecto en los parámetros.
c) Falta tipo de retorno.
d) Falta tipo de retorno y void incorrecto en los parámetros.
e) Faltan los paréntesis.

7. Which of the following are valid constructors within a class Test. Select the two correct answers.
a) test() { }
b) Test() { }
c) void Test() { }
d) private final Test() { }
e) abstract Test() { }
f) Test(Test t) { }
g) Test(void) { }

a) Incorrecto por no coincidir con el nombre de la clase. Debe ser Test y no test.
b) Correcto
c) No puede tener un tipo de retorno
d) No puede ser final
e) No puede ser abstract
f) Correcto
g) void no se puede especificar como tipo en los parámetros. Si no hay parámetros se dejan solo los paréntesis.

8. What is the result of compiling and running the following class. Select the one correct answer.

class Test {

    public void methodA(int i) {
        System.out.println(i);
    }

    public int methodA(int i) {
        System.out.println(i+1);
        return i+1;
    }

    public static void main(String args[]) {
        Test X = new Test();
        X.methodA(5);
    }

}

Select the one correct answer.
a) The program compiles and runs printing 5.
b) The program compiles and runs printing 6.
c) The program gives runtime exception because it does not find the method Test.methodA(int)
d) The program give compilation error because methodA is defined twice in class Test.

d) Correcta. Para el compilador se trata del mismo método repetido. No está sobrecargado porque la variación no puede ser solo el tipo de retorno, debe variar el número o tipo de los parámetros.

Anuncios
 
Deja un comentario

Publicado por en 30 agosto, 2011 en Examen, Preguntas

 

Etiquetas: , , , ,

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

 
A %d blogueros les gusta esto: