PROG_3
![]() |
![]() |
![]() |
Título del Test:![]() PROG_3 Descripción: Programación Tema 3 DAM |




Comentarios |
---|
NO HAY REGISTROS |
Se recomienda invocar siempre los métodos estáticos... Seleccione una: Mediante una referencia a un objeto. Mediante una referencia a un paquete. Mediante el nombre de la clase que define al método estático. Desde el interior de la clase que los define, exclusivamente, sin que sea necesario usar el nombre de la clase para invocarlos, aunque no pasa nada por ponerlo. Por regla general, una solución iterativa tiene menos líneas de código que una solución recursiva. Seleccione una: Verdadero. Falso. Marca las formas en las que resulta posible invocar a un método estático. Seleccione una o más de una: Mediante una referencia a un objeto de la clase en la que se define el método, si tal objeto existe. Mediante una referencia al paquete que contiene a la clase en la que se define el método, siempre que se haya importado dicho paquete completo con import. Mediante el nombre de la clase que define al método estático. Desde el interior de la clase que los define, exclusivamente, sin que sea necesario usar el nombre de la clase para invocarlo, aunque no pasa nada por ponerlo. ¿Cuál de las siguientes frases sobre clases es incorrecta? Seleccione una: A partir de una instancia se crean tantas clases como sea necesario. Una clase consta de atributos y métodos que resumen las caracteristicas de un grupo de objetos. Una clase contiene atributos en los que cada instancia almacenará valores concretos. Una clase contiene métodos que pueden utilizarse para manejar las instancias. Los nombres de los constructores empiezan con minúscula como el resto de los métodos. Seleccione una: Verdadero. Falso. De las siguientes afirmaciones referidas a los métodos, señala cuál es la correcta. Seleccione una: Los atributos de instancia junto con los métodos de instancia reciben el nombre de miembros de clase. Un método puede no devolver ningú valor, en cuyo caso en su declaración simplemente no hay que indicar nada para el tipo, asumiéndose por defecto que el método no devuelve nada. La lista de parámetros formales de un método debe coincidir con la lista de argumentos o parámetros actuales con los que es llamado. No se debe nunca nombrar a un parámetro con el mismo nombre que un atributo del objeto, ya que sería imposible diferenciarlos en el código del cuerpo del método. Dado el siguiente fragmento de código: public static int funcion (int n1, int n2){ int resultado=0 ; int resto = n1 % n2; resultado = funcion (n2, resto+1); return resultado; } Indicar cuáles de las siguientes afirmaciones son correctas. Seleccione una o más de una: No se dispone de caso base. Se producirá una recursividad infinita. El algoritmo está mal diseñado. El método funcion contiene una llamada recursiva. Si se llama a este método con los valores (20,4) el resultado será 4. Si se llama a este método con los valores (20,8) el resultado será 4. El caso base es cuando el cálculo de resto es cero. Es un ejemplo de solución de un problema de forma iterativa. Dado el siguiente fragmento de código: public static int funcion (int numero) { int resultado=1; for (int n = numero; n>1; n--){ resultado *= n ; } return resultado; } Indicar cuáles de las siguientes afirmaciones son correctas. Seleccione una o más de una: Es un ejemplo de solución de un problema de forma iterativa. Si se llama a este método con el valor 5 el resultado será 120. Si se llama a este método con el valor 0 el resultado será 1. Si se llama a este método con el valor 6 el resultado será 120. Es un ejemplo de recursividad infinita, pues no se dispone de caso base. Es un ejemplo de solución de un problema de forma recursiva. public class Persona { int edad; public void setEdad(int nuevaEdad) { edad=nuevaEdad; /*Línea a modificar*/ } } , ¿cuál de las siguientes sentencias se podría sustiuir por el comentario /*Línea a modificar*/? Seleccione una: return;. return edad;. return void;. return true;. Dado el siguiente fragmento de código: public static int mcd (int dividendo, int divisor) { int resultado=0 ; int resto = dividendo % divisor ; if (resto == 0) resultado = divisor; else resultado = mcd (divisor, resto); return resultado; } Indicar cuáles de las siguientes afirmaciones son correctas. Seleccione una o más de una: Es un ejemplo de solución de un problema de forma recursiva. Si se llama a este método con los valores (20,8) el resultado será 4. Si se llama a este método con los valores (20,4) el resultado será 4. Si se llama a este método con los valores (20,6) el resultado será 4. Es un ejemplo de recursividad infinita, pues no se dispone de caso base. Es un ejemplo de solución de un problema de forma iterativa. Si no definimos constructores para una clase, y sólo en ese caso, el compilador crea un constructor por defecto vacío. Seleccione una: Verdadero. Falso. La abstracción es el proceso mediante el cual definimos las características generales de un objeto. Seleccione una: Verdadero. Falso. Dado el siguiente código: public class Rompecabezas { public static void main(String[] args) { Rompecabezas r=new Rompecabezas(); System.out.println(r.metodoX(4)); } public int metodoX (int g) { int resultado=0; if (g>0) { resultado=g+metodoX(g-2); } return resultado; } } , ¿qué resultado mostrará por pantalla? (introduce un número) Respuesta: Los métodos estáticos son aquellos métodos que se pueden utilizar solamente una vez que se ha instanciado el objeto. Seleccione una: Verdadero. Falso. El hecho de que al estar separados los datos de las funciones, sean visibles para toda la aplicación, de modo que cualquier modificación en los datos pueda requerir la modificación en todas las funciones del programa, es propio de la Programación Orientada a Objetos. Seleccione una: Verdadero. Falso. Dado el siguiente código: public class Persona { String name; String apellidos; } ¿Cuál de los siguientes trozos de código es correcto para Java? Seleccione una: Persona p=new Persona(); p.name="John"; p.apellidos=new String ("Smith");. Persona p=new Persona(); p->name=new String("John"); p->apellidos=new String ("Smith");. Persona p=new Persona(); p[name]=String("John"); p[apellidos]="Smith";. Persona p=new Persona(); p.name("John"); p.apellidos("Smith");. Podemos decir que las partes de un objeto son: Seleccione una o más de una: Campos. Objeto adjunto. Identificador del AWT. Funciones miembro. Empareja cada paquete con su descripción. java.lang. java.util. java.io. java.awt. En las siguientes líneas se están instanciado cuatro objetos String, ¿en cuál de ellas hay un error? String m1=new String("hola"); String m2=new String; String m3=m1; String m4="hola"; Seleccione una: m2. m4. m3. m1. Se recomienda no invocar nunca a un método estático mediante una referencia a un objeto de su clase, ya que aunque es posible hacerlo, puede generar confusión, ya que parecería que el método se está ejecutando para hacer algo con ese objeto específico, cuando en realidad, no haría falta ni instanciar ningún objeto para invocar dicho método. Seleccione una: Verdadero. Falso. Marca las afirmaciones que sean correctas, referidas a la Programación Orientada a Objetos. Los datos, junto con las funciones que los manipulan, son parte interna de los objetos y no están accesibles al resto de los objetos. Los programas se crean y estructuran de acuerdo con la arquitectura de la computadora donde se van a ejecutar. Los cambios en los datos de un objeto afectan a las funciones definidas para ese objeto así como al resto de la aplicación. Al programar organizamos el código en torno a objetos, que son representaciones del mundo real que están más cercanas a la forma de pensar de la gente. Marca la opción que NO se corresponda con uno de los beneficios de la Programación Orientada a Objetos. Modularidad. Reusabilidad. Complejidad en el mantenimiento. Comprensión. Cuando un objeto, objeto1, ejecuta un método de otro, objeto2, se dice que el objeto2 le ha mandado un mensaje al objeto1. Verdadero. Falso. Las referencias se utilizan para almacenar los datos del objeto. Verdadero. Falso. A la hora de nombrar clases siguiendo el convenio generalmente aceptado, siempre comenzaremos con mayúsculas, cada primera letra de cada palabra que forme el nombre de la clase, incluida la primera palabra, con el resto de letras en minúscula, sin usar espacios en blanco, ni caracteres acentuados, ni signos de $, ni carácter de subrayado. Verdadero. Falso. Las fases del ciclo de vida de un objeto son: Creación, Manipulación y Destrucción. Verdadero. Falso. Marca las opciones que sean correctas. Un constructor es un método que puede ser invocado en cualquier momento para un objeto, para que éste quede reinicializado, con todos sus atributos a valores nulos: 0 para atributos numéricos, false para boolean, y null para referencias. El constructor debe llamarse, forzosamente, como la clase en la que está definido. Es siempre obligatorio definir un constructor en una clase, ya que de lo contrario resultaría imposible crear objetos de esa clase. Una clase puede definir varios constructores, que obligatoriamente se llamarán todos igual, como la clase, diferenciándose por su lista de parámetros. En caso de que hayamos declarado algún constructor personalizado con parámetros en una clase, Java ya no creará implícitamente el constructor por defecto, que creaba el objeto inicializándolo a valores nulos: 0 para atributos numéricos, false para boolean, y null para referencias. Los métodos estáticos, también llamados métodos de instancia, suelen utilizarse para realizar operaciones comunes a todos los objetos de la clase. Verdadero. Falso. Es preferible importar todas las clases que necesitemos mediante su propia sentencia import, ya que si usamos .* estaremos añadiendo a nuestra aplicación el código de toda una serie de clases del paquete que no necesitamos, y que sólo servirán para aumentar el tamaño de la aplicación, alargando el tiempo de compilación, además. Verdadero. Falso. La clase System del paquete java.io, como cualquier clase, está formada por métodos y atributos, y además es una clase que no se puede instanciar, sino que se utiliza directamente. Verdadero. Falso. Une. Scanner. PrintStream. InputStreamReader. BufferedReader. ¿Qué debemos tener en cuenta a la hora de saber si un método recursivo está bien definido? Señala la afirmación correcta. Debemos ser capaces de expresar correctamente la solución de un caso a partir de la soluciones de casos menos complejos, para poder construir la solución de cualquier caso a partir de las soluciones del caso base. Debemos ser capaces de expresar correctamente la solución de un caso a partir de la soluciones de casos más complejos. La solución puede no ser correcta para los casos no base. Todas las anteriores son correctas. Señala la afirmación correcta. Respecto a la recursividad frente a la iteración, podemos afirmar que: Si existe una solución recursiva a un problema, no siempre existe una solución iterativa. A veces, por la naturaleza recursiva del problema, no es fácil encontrar la solución iterativa, o resulta complicada y difícil de entender. La solución recursiva necesitará consumir menos recursos de memoria y de CPU, y obtendrá la solución en menos tiempo. Todas las respuestas anteriores son correctas. ¿Cuáles es la razón fundamental para usar la recursividad? Señala la afirmación correcta. Los problemas resultan más fáciles de resolver que con estructuras iterativas. Proporciona soluciones más simples. Proporciona soluciones elegantes. Todas las anteriores son correctas. |