Documentos de Académico
Documentos de Profesional
Documentos de Cultura
3. ¿Cuál de las siguientes afirmaciones pueden ser consideradas como los 3 principales
conceptos de la POO?
a. Encapsulación, Sobrecarga y Sobreescritura.
b. Encapsulación, Herencia y Polimorfismo.
c. Polimorfismo, Herencia y Sobreescritura.
d. Herencia, Encapsulación, Enlace de tiempo de ejecución.
e. Encapsulación, Enlace dinámico y Herencia.
R/ Las clases son estructuras que representan objetos del mundo real, tomando como
objetos a personas, lugares o cosas, y poseen propiedades (atributos) y comportamientos
(métodos). Mientras que un objeto es la instancia de una clase, que es lo que le da sentido a
esta.
6. Cuando una clase implementa una interfaz, se debe proveer el comportamiento para:
a. Dos métodos definidos en dicha interfaz.
b. Solo ciertos métodos definidos en dicha interfaz.
c. Cualquiera de los métodos de una clase.
d. Todos los métodos definidos en dicha interfaz.
La ventaja principal del uso de interfaces es que una clase interface puede ser implementada
por cualquier número de clases, permitiendo a cada clase compartir el interfaz de
programación sin tener que ser consciente de la implementación que hagan las otras clases
que implementen el interface.
R/ Es mediante la cual podemos obtener las características de las clases padre, heredando
sus atributos y métodos.
En java, solo se puede heredar desde una sola clase padre, y se representa mediante la
palabra extends.
La sobrecarga de métodos es la creación de varios métodos con el mismo nombre, pero con
diferentes firmas (sus parámetros o argumentos) y definiciones.
Java utiliza el número y tipo de argumentos para seleccionar cuál definición de método
ejecutar.
Java diferencia los métodos sobrecargados con base en el número y tipo de argumentos que
tiene el método y no por el tipo que devuelve.
R/ Consiste en la inserción de código SQL por medio de los datos de entrada desde la parte
del cliente hacia la aplicación. Es decir, por medio de la inserción de este código, el atacante
puede modificar las consultas originales que debe realizar la aplicación y ejecutar otras
totalmente distintas, con la intención de acceder a la herramienta, obtener información de
alguna de las tablas o borrar los datos almacenados, entre otras muchas cosas.
Si el operador escribe un nombre, por ejemplo "Alicia", nada anormal sucederá; la aplicación
generaría una sentencia SQL similar a la siguiente, que es perfectamente correcta, en donde
se seleccionarían todos los registros con el nombre "Alicia" en la base de datos:
SELECT * FROM usuarios WHERE nombre = 'Alicia';
, se generaría la siguiente consulta SQL, (el color verde es lo que pretende el programador,
el azul es el dato, y el rojo, el código SQL inyectado):
R/ La Interface Map, nos permite representar una estructura de datos para almacenar pares
"clave/valor"; de tal manera que para una clave, solamente corresponde un valor.
Debido a que Map es una interface, se deben implementar sus métodos, y para esto Java
tiene implementadas varias clases, y entre las más importantes se encuentran:
a. HashMap: Los elementos que inserta en el Map, no tendrán un orden específico. No
aceptan claves duplicadas, ni valores nulos.
b. TreeMap: Ordena el Map de forma "natural". Por ejemplo, si la clave son valores enteros,
los ordena de menor a mayor.
c. LinkedHashMap: Inserta en el Map los elementos en el orden en el que se van insertando.
Como nos dimos cuenta, la principal diferencia entre estas clases, es la forma o el orden en
el que se guardan los valores en el Map.
Existen otros tipos de estructuras de datos, tales como:
HashTable: es una estructura que utiliza una función hash para identificar datos mediante
una llave o clave. La función hash transforma una llave a un valor índice de un arreglo de
elementos.
ConcurrentHashMap: Permite el acceso concurrente al mapa. Parte del mapa denominado
Segmento sólo se bloquea al agregar o actualizar el mapa. Por lo tanto, ConcurrentHashMap
permite que los subprocesos concurrentes lean el valor simultáneamente sin ningún tipo de
bloqueo. Esta estructura de datos se introdujo para mejorar el rendimiento.