Preguntas p3 parte 3
![]() |
![]() |
![]() |
Título del Test:![]() Preguntas p3 parte 3 Descripción: Preguntas p3 parte 3 |




Comentarios |
---|
NO HAY REGISTROS |
El código duplicado es un caso de código sospechoso en el que se aconseja el uso de técnicas de refactorización para eliminarlo. V. F. La existencia de una sólida colección de pruebas unitarias es una precondición fundamental para la refactorización. V. F. “Los métodos que usan referencias a clases base deben ser capaces de usar objetos de clases derivadas sin saberlo” es una posible formulación del principio de inversión de dependencias. V. F. El enlace de la invocación a un método sobrescrito se produce en tiempo de ejecución en función del tipo del receptor del mensaje. V. F. this es un ejemplo de variable polimórfica en Java. V. F. En Java el downcasting siempre se realiza en tiempo de ejecución. V. F. En Java, un atributo de clase debe declararse dentro de la clase con el modificador static. V. F. En Java, gracias a la sobrecarga de operadores podemos crear nuevos operadores en el lenguaje. V. F. Si en una clase no se declara, implícita o explícitamente, un constructor por defecto, no se pueden crear instancias de esa clase. V. F. Una de las características básicas de unos lenguajes orientados a objetos es que todos los objetos de la misma clase pueden recibir los mismos mensajes. V. F. La instrucción throw en Java sólo permite lanzar objetos que son instancias de la clase java.lang.Throwable o de clases derivadas de ésta. V. F. En Java, la instrucción throw no se puede usar dentro de un bloque catch. V. F. Los métodos genéricos no se pueden sobrecargar ni sobrescribir. V. F. Una clase abstracta siempre tiene como clase base una clase interfaz. V. F. De una clase abstracta no se pueden crear instancias, excepto si se declara explícitamente algún constructor. V. F. C++ sólo permite heredar cuando la clase hija es un subtipo de la clase padre (herencia como implementación de la generalización). V. F. El constructor de copia permite argumentos tanto por referencia como por valor. V. F. El estado de un objeto es el conjunto de valores de los atributos y métodos que han sido invocados sobre él. V. F. En las jerarquías de herencia en C++, si la clase base define un operador de asignación y la clase derivada no lo redefine, al invocar a dicho operador con objetos de la clase derivada se invocará al código de la clase base. V. F. La herencia es más flexible en cuanto a posibles cambios en la naturaleza de los objetos que la composición. V. F. La herencia privada en C++ es un tipo de herencia insegura porque no preserva el principio de encapsulación. V. F. La relación de herencia es una relación de clases no persistente. V. F. Un objeto se caracteriza por poseer un estado, un comportamiento y una identidad. V. F. Una clase abstracta siempre tiene que tener alguna clase que derive de ella. V. F. Tanto la herencia protegida como la privada permiten a una clase derivada acceder a las propiedades privadas de la clase base. V. F. Una clase abstracta se caracteriza por no tener atributos. V. F. La siguiente clase: class S {public: virtual ~S()=0; virtual void f()=0;}; constituye una interfaz en C++. V. F. Desde un método de una clase derivada nunca puede invocarse un método implementado con idéntica signatura de una de sus clases base. V. F. Los métodos con enlace dinámico son abstractos. V. F. Los constructores de las clases abstractas son siempre métodos abstractos. V. F. Un atributo de clase debe tener visibilidad pública para poder ser accedido por los objetos de la clase. V. F. Un método sobrecargado es aquel que tiene más de una implementación, diferenciando cada una por el ámbito en el que se declara, o por el número, orden y tipo de argumentos que admite. V. F. Todo espacio de nombres define su propio ámbito, distinto de cualquier otro ámbito. V. F. Un método abstracto es un método con polimorfismo puro. V. F. En la sobrecarga de operadores binarios para objetos de una determinada clase, si se sobrecarga como función miembro, el operando de la izquierda es siempre un objeto de la clase. V. F. La genericidad se considera una característica opcional de los lenguajes orientados a objetos. V. F. Hablamos de encapsulación cuando diferenciamos entre interfaz e implementación. V. F. Una operación de clase no es una función miembro de la clase. V. F. Los constructores siempre deben tener visibilidad pública. V. F. En C++, si no se captura una excepción lanzada por un método, se produce un error de compilación. V. F. En C++, la cláusula throw() tras la declaración de una función indica q ésta no lanza ninguna excepción. V. F. Dada una clase genérica, no puede ser utilizada como clase base en herencia múltiple. V. F. De una clase interfaz no se pueden crear instancias. De una clase abstracta sí. V. F. Cuando usamos la varianza estamos haciendo un uso inseguro de la herencia de implementación. V. F. En la sobrecarga de operadores como función miembro, el operando de la izquierda puede ser un objeto de la clase o cualquier otro tipo de objeto, mientras que en las funciones amigas siempre es un objeto de la clase. V. F. Cuando creamos un objeto en C++ mediante una variable automática el constructor se autoinvoca. También se autoinvoca el destructor del mismo al salir del ámbito de la función donde se creó. V. F. Si para una clase genérica llamada Pila<T> declaramos las siguientes funciones: virtual void apilar(T* pt); virtual void apilar(T t); En caso de sobrescritura ya que el tipo devuelto es el mismo en ambos métodos. V. F. De una clase abstracta se pueden crear referencias a objetos. V. F. En un atributo de clase se reserva espacio en memoria para una copia de él por cada objeto de su clase creado. V. F. Declarar un dato miembro de una clase como private indica que sólo puede acceder a ese atributo desde las funciones miembro de la clase. V. F. El polimorfismo debido a la sobrecarga de funciones siempre se da en relaciones de herencia. V. F. A los atributos de instancia si son constantes se les asigna su valor inicial fuera de la clase. V. F. Toda sentencia que aparece después del punto del programa en el que ocurre una excepción, en ningún caso se ejecuta. V. F. Si utilizamos los mecanismos de manejo de excepciones disminuye la eficiencia del programa incluso si no se llega a lanzar nunca una excepción. V. F. Cuando se captura una excepción y ésta pertenece a una jerarquía de clases, el primer bloque catch debe comenzar con la clase del nivel más alto de la jerarquía. V. F. Hablamos de shadowing cuando el método a invocar se decide en tiempo de compilación. V. F. A diferencia de otros lenguajes de programación en C++ la sobreesctritura en relaciones de herencia se debe indiciar de forma explícita en la clase padre. V. F. La encapsulación es un mecanismo que permite separar de forma estricta interfaz e implementación. V. F. La interpretación de un mismo mensaje puede variar en función del receptor del mismo y/o del tipo de información adicional que lo acompaña. V. F. Un atributo de clase público puede ser accedido desde fuera de la clase a través de un objeto de la clase, un puntero o referencia al mismo o mediante el nombre de la clase seguido del operador de ámbito. V. F. El recolector de basura es un mecanismo de liberación de recursos presente en todos los lenguajes OO. V. F. Es posibles definir un constructor de copia invocando en su cuerpo al operador de asignación. V. F. Para que se pueda realizar una herencia múltiple en C++, es necesario que no coincida ninguno de los nombre de atributo entre las clases bases involucradas. V. F. La signatura de tipo de un método incluye el tipo devuelto por el método. V. F. En el principio de sustitución implica una coerción entre tipos de una misma jerarquía de clases. V. F. En C++, un destructor no puede ser virtual. V. F. El puntero this no es una variable polimórfica porque es constante y no se puede cambiar su valor. V. F. Las instrucciones para el manejo de excepciones nos permite mezclar el código que describe el funcionamiento normal de un programa con el código encargado del tratamiento de errores. V. F. La herencia de interfaz se implementa mediante herencia pública. V. F. Una interfaz no puede tener atributos de instancia. Una clase abstracta si puede tenerlos. V. F. No se puede definir un bloque catch sin su correspondiente bloque try. V. F. Una variable polimórfica puede hacer referencia a diferentes tipos de objetos en diferentes instantes de tiempo. V. F. El downcasting siempre es seguro. V. F. La sobrecarga basada en ámbito permite definir el mismo método en dos clases diferentes. V. F. En el diseño mediante tarjetas CRC, utilizamos una tarjeta por cada jerarquía de herencia. V. F. Un espacio de nombres es un ámbito con nombre. V. F. Un sistema de tipos de un lenguaje asocia a cada tipo una expresión. V. F. Hacer que el código sea más fácil de entender no es un motivo suficiente para refactorizarlo. V. F. En Java, los tipos genéricos sólo se pueden aplicar a clases e interfaces. V. F. En Java, una clase genérica puede ser parametrizada empleado más de un tipo. V. F. Sean dos clases Base e Hija. La clase Hija hereda de Base. En Java, cuando asignamos un objeto de la clase Hija a una referencia a Base haciendo conversión de tipo explícita estamos haciendo object slicing. V. F. Una de las principales fuentes de problemas cuando utilizamos herencia múltiple es que las clases bases hereden de un ancestro común. V. F. Los lenguajes de programación soportan el reemplazo y el refinamiento como métodos de sobrescritura, pero no hay ningún lenguaje que proporcione ambas técnicas (JAVA solo soporta reemplazo y C++ sólo soporta refinamiento). V. F. Una interfaz puede implementar otra interfaz. V. F. En java es obligatorio indicar que un método de una clase derivada sobrescribe un método de la clase base con la misma signatura. V. F. En la sobrecarga basada en ámbito los métodos pueden diferir únicamente en el tipo devuelto. V. F. En la herencia pública la clase derivada podrá acceder a los atributos privados de la clase base de la que hereda. V. F. Una clase abstracta se caracteriza por no tener ningún constructor. V. F. El cambio de una condicional por el uso de polimorfismo es un ejemplo de refactorización. V. F. Un atributo siempre tiene visibilidad pública. V. F. El principio de segregación de interfaz indica que el código cliente no debe ser forzado a depender de interfaces que no utilice. V. F. El usuario de un framework implementa el comportamiento declarado en los interfaces del framework mediante herencia de implementación. V. F. |