Selestoca’s Weblog











{marzo 14, 2008}   Práctica 4

Bueno, en principio para muchos de nosotros (los repetidores…) la herencia nos parece fácil…”el hijo tiene todos los atributos del padre”,ya que tenemos la ventaja de haberlo estudiado en RDA; pero en algunas aplicaciones hay un poco más de tela…..

Ejercicio 1

Suponemos que no hay mucho que contar en este apartado, ya que es implementar el constructor y en el método toString() retornar una sentencia (recordar que para los modificadores hay que hacerlos como la práctica anterior).

¿Qué pasaría si se cambiara protected por private en nuestra jerarquía de clases?
Para los que no sabian responder esta pregunta, si se cambia protected por private, las clases derivadas de esta, solo podrían acceder a sus atributos a tráves de sus métodos de acceso y no se heredaría.

Ejercicio 2

Este ejercicio es igual que el anterior con la unica diferencia que hereda de la clase Miembro, y hereda sus atributos. A la hora de crear el constructor, debemos llamar a los atributos heredados mediante super, y a los parámetros propios de la clase, llamarlos normalmente(this.).

Ejercicio 3

Para los que estuvieron en el grupo de Alberto Cortes, nos explicaron para que servía StringBuffer().

StringBuffer ret=new StringBuffer();
            ret.append(” TIPO = “+ tipo);
        return ret.toString();

Todo este código puede ser reemplazado por:

return “TIPO = “+tipo;

como lo hemos hecho en los apartados anteriores.

- ¿Para que sirve entonces StringBuffer?
A nivel usuario, hace lo mismo que poner lo explicado anteriormente, pero a nivel computacional, cuando tiene que concatenar 2 Strings, no los suma, sino que crea un tercer String del tamaño total de la suma de los 2 anteriores, y los añade… por lo que al compilar, la máquina tarda más.
Lo que hace StringBuffer es crear un String variable de tamaño, por lo que al concatenar Strings, este se hace más grande y añade el siguiente… por lo que la máquina tarda menos en compilar y no crea Strings adicionales.

La clase método se realiza igual que la clase Atributo, solo que en toString() hay que añadir un for e ir metiendo todos los parametros. (Creemos conveniente utilizar el StringBuffer aquí, que existen muchas concatenaciones). Nosotras lo hemos hecho asi para quienes os sirva:

public String toString() {       
         StringBuffer ret = new StringBuffer();
         ret.append(“Nombre: “+nombre+”, Modificador: “+Modificador.toString(modificadores)+”Tipo Retorno”+tipoRetorno);
         if (parametros != null)
            for(int i =0;i<parametros.length;i++)     
               ret.append(“Parametro “+i+ “: “+parametros[i]);
         return ret.toString();
      }

Ejercicio 4 

La clase Constructor hereda de Método, según se nos da en el enunciado. Pero nos encontramos con un problema, Constructor no tiene tipoRetorno, por lo que a la hora de heredarlo, tendríamos que añadir “” en el espacio que corresponde a tipoRetorno de la clase Metodo.

Alberto nos ha recomendado que no hagamos esto porque a parte de que requiere más trabajo, un constructor no es un método (suena mal) y lo ideal, es que Constructor herede de Miembro aunque sea redundante.

Se haría como la clase Metodo pero sin tipoRetorno.

Ejercicio 5

Esta clase hereda de la clase Object. Es de la que heredan todas por defecto cuando el usuario no especifica de que clase se hereda.  (Se explicó en clase)

Este ejercicio no nos ha dado tiempo a terminarlo, no porque sea extenso, sino porque hay que entender bien el código haciendo uso del API, para poder entender para que servía cada método.

Nos encontramos con cosas “extrañas” como esta: o.getClass().getName() ; (que quiere decir, que el objeto “o”, el nombre (get.Name()) de la clase donde nos encontramos(getClass())… y asi todos… que nos ha llevado su tiempo descifrarlo…), aún así no podemos decir mucho porque no estamos muy seguras…



{marzo 7, 2008}   Práctica 3

La clase de hoy ha sido más teórica que práctica. Desde nuestro punto de vista hemos perdido un tiempo en la realización de la “PRÁCTICA” en cosas que deberían darse en la teoría. No decimos que haya estado mal, porque ayuda a aprender y viene bien en general.

Por lo tanto, solo nos ha dado tiempo ha realizar hasta el ejercicio 2.

Ejercicio 0

Este ejercicio ha sido teórico, del cual, Alberto ha dedicado mucho tiempo en dejar claras las cosas por ser conceptos básicos que deberíamos saber.

La pequeña práctica que tenía este ejercicio simplemente era para familiarizarse en manejar los métodos y como acceder a ellos si los atributos son privados o públicos.

Una breve explicación para acceder a estos es la siguiente:

-> Si el atributo es privado, solo se puede acceder a él mediante sus métodos de acceso (get y set).
Ejemplos: p1.getX(); //devuelve el valor
p1.setX(x); //pone un valor

-> Si el atributo es publico, se puede acceder a él con el operador “.” y seguido el atributo.
Ejemplo: p1.x=3;

El último punto de este ejercicio era muy interesante, ya que para llamar a contador (que era static), se puede llamar tanto desde p1, p2 o Punto que nos dará el mismo resultado, ya que al ser static, si su valor se modifica, se queda modificado para todo el programa.

Ejercicio 1

Este ejercicio es para familiarizarse con java.lang.reflect.Modifier. Hay que comprenderlo bien ya que hay que usarlo para los demás ejercicios.
Nosotras pensamos que funciona asi:

-> Los atributos tienen un valor fijo (static final) que no se podrá modificar en todo el programa.
-> Modifier.toString(valor), que ya esta implementado, nos devuelve el nombre del atributo, según el valor que le dimos al inicializarlo.

Ejercicio 2

En este ejercicio, hay que rellenar el constructor (el de toda la vida, utilizando el this) y rellenar el método sustituyendo el “null” por un String en el que incluimos el nombre, el tipo y los marcadores. Para que nos devuelva el tipo de modificador, los modificadores hay que pasarlos por parámetro utilizando la clase Modificador.

-> Modificador.toString(modificadores)



{marzo 4, 2008}   Practica 2

Esta práctica ha estado bastante bien, nos ha ayudado a refrescar ideas que teníamos en el aire…. aconsejamos realizarla por que se utilizan, por una parte, aserciones(nos ayudan de cierta manera ver los error sin tratatarlas)que se pueden ver en el ejercicio 2; y por otra, las excepciones (tratar o capturar el error sin parar el programa directamente), con las que repasamos una parte importante de la programación y que deberían estar en todo programa.

El tiempo ha sido escaso (como siempre) por lo que un día de esta semana terminaremos la práctica por nuestra cuenta.

En general, esta practica nos ha parecido más completa que la anterior, ya que toca temas importantes.

Cabe decir, que las explicaciones del profesor fueron bastante completas para la realización de la práctica.

Ejercicio 1

Este ejercicio vino bien para recordar como configurar el CLASSPATH, donde especificamos una carpeta desde donde se ejecutaran los comandos javac y java (por si leeis nuestro blog, estas cosas suelen caer en el examen, en la parte de teoria…).

Tambien tocamos la clase Math (para cualquier tipo de operacion matemática), que aunque no lo parezca, es muy útil a la hora de programar. Aunque es una parte de la práctica muy sencilla, la hemos hecho ya que luego la necesitas para futuros ejercicios. Si alguno no lo hizo, pues deberíais porque os dareis cuenta de que no os acordabais perfectamente de su uso (como nos paso a nosotras…).

Ejercicio 2

En este ejercicio solo tuvimos que añadir el código que se nos daba y tuvimos que añadir otro para que no nos diese un error java al dividir entre 0.

Una cosa que se nos pregunto fue porque hay q poner System.exit(1); y no meterle cualquier otro valor. La explicación es muy sencilla:
En realidad el valor no significa nada, solo que se ha aceptado que se pone un 0, cuando todo lo que se ha ejecutado anteriormente iba bien o era correcto, y cualquier valor distinto de 0, cuando no era del todo correcto. En este caso se a puesto un 1, aunque podría haber sido un -1 o cualquier otro valor.

Todo lo demás simplemente era crear otra clase y llamarla a la hora de que se produzca un error en las operaciones.



etcétera
Seguir

Get every new post delivered to your Inbox.