Orientación a Objetos y Herencia (I)
Tabla de contenidos
1.
Laboratorio: Repaso
1.1.
Conceptos Básicos Java
Comprobar si se conocen ciertos conceptos clave de Java.
Responde por escrito a las siguientes preguntas:
¿Qué editor de textos vas a usar para crear los fuentes de sus programas? ¿Sabes usarlo?
¿Cuál es el PATH del compilador java que vas a usar en las prácticas?
¿Qué opción del compilador te parece más inútil?
¿Qué versión de la JRE se usará en las prácticas?
¿Cuál es el PATH de la máquina virtual Java?
¿Cuál es la URL oficial para la API de dicha JRE?
¿Sabes lo que es Java EE, Java SE y Java ME?
¿Cuál es la diferencia entre parámetros formales y parámetros actuales?
¿Qué es un programa?
¿Entiendes la diferencia entre tipo y valor?
¿Entiendes la diferencia entre clase y objeto?
¿Hay equivalencia entre clase y tipo?
¿Hay equivalencia entre objeto y valor?
¿Entiendes la diferencia entre referencia a objeto y objeto?
¿Qué hace el "recolector de basura" ("garbage collector")?
¿Qué diferencia hay entre un método de clase y un método de objeto?
¿Qué diferencia hay entre un atributo y una variable?
1.2.
Repaso al método main
Repaso del método main y su utilidad.
A continuación se presentan una serie de preguntas sobre el método main que deberá contestar
por escrito y en los casos en los que sea necesario comprobar su funcionamiento.
¿A qué se debe la existencia del método main?
¿Entiende la función de un sistema operativo? ¿Qué relación existe entre el sistema operativo
y el método main?
Si lanzamos el comando java Clase y Clase no implementa método
main ¿qué ocurre? ¿entiende bien el mensaje por pantalla?
Si un programa en Java tiene cinco clases y todas ellas implementan un método main,
¿podremos ejecutar cualquiera de las clases? o ¿Java sólo permite un método main por
programa?
¿Por qué razón es estático el método main?
¿Puedo llamar desde el método main a otros métodos implementados en la clase?
¿Por qué motivo sólo puedo llamar a métodos estáticos de la propia clase
desde el método main?
Si el objetivo de método main es arrancar el programa, ¿cree qué es una buena
prática de programación implementar más de 20 líneas de código en él?
¿Cuál es la conexión entre el sistema operativo y el parámetro del método main?
¿Por qué tengo un sólo parámetro y sin embargo desde el sistema operativo puedo ofrecerle al método
main N valores a ese parámetro?
Aunque el método main no retorna valor ¿podría ser interesante devolver un valor
al sistema operativo en la ejecución de main?
Explique el motivo por el que se define el parámetro de main como
String [] args y no como String [255] args
1.3.
Pintado de Tablero de Ajedrez en modo consola
Practicar los bucles for.
1.4.
Transformación de bucles (for -> while)
Practicar con bucles.
1.5.
Transformación de bucles (while -> for)
Practicar con bucles.
2.
Actividades para casa
2.1.
Ejercicios de repaso de arrays
Repaso de arrays con ejercicios muy básicos.
Devolver el mayor de los números enteros de un array.
Devolver la media de los elementos de un array.
Mostrar los elementos pares de un array.
Mostrar el sumatorio de los elementos de un array.
2.2.
Indicar si una frase o palabra es palíndroma
Repaso de bucles.
Una palabra o frase es palíndroma si se lee igual de izquierda a derecha que de derecha a izquierda. Implemente un programa que permita determinar si una cadena dada es palíndroma o no.
2.3.
Cálculo del factorial mediante bucles
Prácticar con bucles.
Implementar el cálculo del factorial de un número dado primero utilizando un bucle for y
después utilizando un bucle while.
2.4.
Arrays de 2 dimensiones
Practicar ejercicios de arrays (2 dimensiones).
Implemente un clase Matriz con el comportamiento para la suma de matrices, teniendo en cuenta que el resultado de la suma
no podrá modificar la instancia sobre la que se ejecuta el método.
2.5.
Tratamiento de cadenas y clase Vector
Recorrer una cadena para trocearla y guardar cada parte como un elemento de un Vector.
Implementar un programa que tenga un método que recibe una cadena de caracteres. Esa cadena de caracteres estará formada por subcadenas separadas por un carácter '|'.
Esta cadena de caracteres se debe descomponer para ir almacenando cada subcadena de forma individual en un objeto Vector. El método deberá devolver este objeto Vector.
La cadena puede estar vacía.
En el caso de que no sepa utilizar un Vector hágalo descomponiendo la cadena en un array donde cada posíción del array almacenará una subcadena.
Por ejemplo, la cadena "Si|No|A veces" debe descomponerse en las tres subcadenas: "Si", "No", "A veces",
almacenada cada una de ellas por separado en el Vector (o array).
Puede encontrar información de la clase Vector en el siguiente archivo:
Vector.pdf