12º práctica o papa, papa ¿De donde vienen los universitarios?
Que pena, que suenen los violines y lloren las plañideras, esta va a ser nuestra última práctica de OCA. Bueno, y después de estos 3ms para la pena, comenzamos con nuestro relato semanal.
Como en la universidad también sabían que era nuestra última práctica decidieron crearnos un ambiente de recogimiento caracterizado por un apagón luminoso, eso sí, nos dejaron encendidos los ordenadores para que nuestra pena no fuera tan honda (Eso es lo que se cree mi compañera, pero la realidad es que la universidad había hecho un “pacto” comercial con una óptica, y pretendían dejarnos a todos ciegos. Con la luminosidad de las pantallas a tope y la sala oscuras no veas!!!, no finjáis que os hemos pillao’). Después de unos minutos y coincidiendo con la llegada de mi compañera volvió la luz (Esto ya me mosquea, ¿Por qué cuando llega mi compañera vuelve la luz y los ordenadores funcionan?, lo mismo es que en realidad es del planeta Saturno y ha venido de intercambio universitario, “parece que lo del plan Bolonia si que funciona”). Y ahora vamos con los ejercicios.
Aquí la compañera, y no, que los de Saturno tienen las orejas puntiagudas y los ojos rojos, (yo soy de Venus, pero no se lo digas a nadie o tendré que echarte de comer a los perros perusinos de venusia ^^). Bueno, primero disculparme con vosotros mis adorados lectores por entregar esta última aventura con tanto retraso (ya se sabe, uno nunca sabe como dar un último buen final, ¿eh?). Nah, si es que entre terminar el juego, y estudiar para los demás exámenes ya se sabe, el típico, bueno, lo hago luego más tarde… y el más tarde se convierte en horas, días, semanas, ya sabéis, es como los típicos 5 minutos más de las siestas xD.
Bueno, la verdad es que aquel día no teníamos las cabezas muy lúcidas. Puede que fuera que estar la clase a oscuras al principio se os durmieron los cerebros o algo así, y no conseguíamos que nos saliera nada, la verdad es que no conseguimos ni hacer que saliera un reproductor sencillo, en fin un desastre. Aunque estoy segura que con algo más de café cerebril y mirándolo con más calma saldría, todo es ponerse a ello!
Y me voy que tengo que seguir estudiando TT.
Nos despedimos y como siempre no os perdáis el próximo capítulo de nuestras desventuras informáticas(¿ ?). Noooo, no es cierto, se acaban, y ahora os aburriréis sin nosotras y nuestras peleas a muerte con los ordenadores!!! Jajaja, bueno, puede que aún quede algún post sorpresita pa nuestros aferrísimos lectores, mmm, que será será. Así que si, con un par de velas o directamente unos cuantos candelabros por si se vuelve a ir la luz, y una gafas de culo de vaso gracias a nuestros “amigos” ópticos, nos despedimos y como siempre no os perdáis el próximo capítulo de nuestras desventuras informáticas.
Saludos
11º práctica o de lo que adoro las telecomunicaciones
Definición de Internet: red de comunicaciones que siempre se cuelga cuando más falta hace. Y lo digo con conocimiento de causa, porque el día que dices, “no tengo nada que hacer voy a navegar un poco” (a no ser que seas el rey en traje de marinerito, se entiende que por Internet) pues va al doble de velocidad y tu piensas “qué bien” porque el día que lo necesite esta conexión es (usando la palabra científica exacta) la caña de rápida. Pero luego esta el factor “puñetero” de la red y es que si es viernes, te has concienciado y has ido a clase, y estas dispuesto a trabajar, bueno pues Internet va y no funciona. Esto como ya os sospecháis es lo que paso el viernes, menos mal que lo único que quería era gastarnos una broma y sólo tardo 15 minutos en funcionar, tiempo suficiente para que yo presenciara el acontecimiento más inesperado de la historia de la humanidad. Mi compañera había llegado puntual a clase. Sí, ya sé que es increíble, por eso lo escribo aquí para que quede constancia, por eso y porque sé que es un hecho que no se volverá a repetir en 100.000 años. Después de tanta felicidad ni siquiera la práctica pudo amargarme el día. Y aquí os la resumimos:
Como en interfaz gráfica andamos un poco perdidas aún, (sí, ya, más vale que nos pongamos ya en serio con ello que si no vamos mal…) pues fue ir mirando la teoría y recortando partes del código de ejemplos y pegando en el notepad haciendo un collage muy bonito, sólo le faltaban las florecillas y las mariposas xDDDD. Al final conseguimos que hiciera lo que queríamos, un botoncito que ponía Pulsame (que sin duda entusiasmo a mi compañera por todas las veces que le dio al botoncito… yo no quiero decir nada… lalala…. Compañera: sí claro, porque como tu eres muy madura, no vas por hay pulsando botones. Yo de nuevo: ya… yo me dedico a dar vueltas a la ruedecita del ratón que es más diver xD). En fin… regresando a la práctica… Buscando distintos escuchadores de eventos en el api y con ayuda de un compañero conseguimos que el botoncito cambiara de color al pulsarlo. No nos funcionaba porque al implementar las clases escuchadoras en distintos archivos, no se pasaba bien los parámetros de uno a otro y no funcionaba. Al implementarlo todo en un mismo archivo conseguimos que funcionara bien y todo.
Con mono de botoncito “Pulsame” (que sepan que me han podido crear una seria adicción) nos despedimos y como siempre no os perdáis el próximo capítulo de nuestras desventuras informáticas.
Saludos
10º práctica o vuelta a la rutina
Esta vez nos hemos retrasado un poco con la práctica, ya sabéis estamos a mediados de mayo y los exámenes aprietan. Ya lo sé, no es excusa porque nos echabais muchísimo de menos, pero la vida es así, no la he inventado yo. Bueno, y qué paso el viernes, pues lo de siempre. Retrasos con los trenes (Aviso a navegantes “LAS OBRAS EN LOS MEDIOS DE TRANSPORTE SE HACEN EN AGOSTO”), pocas ganas de ir a clase (como se nota la primavera), esfuerzo sobrehumano para sobreponerse (esperamos que recompensado con un aprobado en junio), más esfuerzo sobrehumano para hacer las prácticas (yo todavía no sé en base a que ley física, pero según avanza el curso los enunciados de las prácticas se hacen cada vez más ininteligibles), y al final… , me gustaría decir que conseguimos hacer todos los ejercicios perfectamente bien pero entonces os destriparía la segunda parte de este blog así que leerlo vosotros mismos.
Bueno, los primeros ejercicios consistieron en compilar algunos programillas q venían en los enunciados y ver cómo funcionaban. En ellos se nos introducía al “apasionante” (bueno, quien sabe, a lo mejor para algunos sí xD) mundo de los hilos. Esto sirve para que un programa pueda realizar varias tareas a la vez. En esta parte de la práctica nos perdimos un poco bastante la verdad, pero sé que todo es ponerse y mirárselo bien y con calma para entenderlo ^^. Seguimos compilando el resto de programas que vienen en los enunciados pero sin entenderlos demasiado. Un pequeño podría decirse problemilla de los hilos es que si lanzas varios, no sabes cual se ejecutará primero. Hay varias soluciones para esto, unas mejores que otras como siempre. El día que lo entienda bien y no vaya a liaros más os lo contaremos XDDD.
Con mucho arrepentimiento y odiando a la renfe nos despedimos y como siempre no os perdáis el próximo capítulo de nuestras desventuras informáticas.
Saludos
9º práctica o como decían los ramones “Somebody put something in my drink”
Último viernes de Abril, ese día no se por qué pero todos los espíritus se conjuraron para hacerme más llevadera la entrada de la primavera (es duro ir a clase cuando tus compañeros se han tomado el día sabático por el buen tiempo y más si esa clase es a primera hora, y quien me diga que conoce a alguien al que le guste madrugar, conocerá a un mentiroso). Cuando llegué la puerta del aula estaba abierta y los ordenadores arrancados. Al primero que me acerqué funcionaba y además a una velocidad razonable (porque había algunos que te creías que funcionaban pero luego había que animarlos para que te abrieran la página web de la práctica, y el que me diga que nunca ha hablado con su ordenador, también es un mentiroso). Casi lloro de alegría. Además mi compañera llegó bastante pronto y empezamos la práctica. Yo todavía estoy intentando averiguar donde estaba el truco, a lo mejor es que mi tren entró en un universo paralelo o que alguien me puso setas alucinógenas en el café. Bueno sin darle más vueltas vamos a empezar con los ejercicios.
¡Por fin empezamos a ver lo que programamos en plan chulo! Y eso es porque empezamos a utilizar las interfaces gráficas. En el ejercicio 1 tuvimos que ir modificando un trozo de código que nos daba el enunciado. Cambiar el tamaño de la ventana fue fácil, sólo había que cambiar los números en los parámetros del método setSize. El cambio del color de la etiqueta sin embargo nos dio más problemas. Buscamos por Google como hacerlo, poniendo simplemente:
label.setOpaque(true);
label.setBackground(Color.BLUE);
Sin embargo al compilar siempre nos decía que la no se encontraba la variable Color. Nos pusimos a buscar por el api, a ver si teníamos que importar alguna otra clase además de las que ya venían en el código del enunciado, pero nada, que no conseguimos que nos compilara de ninguna manera. Nos quedamos atascadas en este apartado y no nos dio tiempo a continuar con los demás.
Con una gran duda existencial (y no por el color de la etiqueta) nos despedimos y como siempre no os perdáis el próximo capítulo de nuestras desventuras informáticas.
Saludos
8º práctica o lo que el viento se dejó
Es viernes otra vez, y yo no querría ponerme pesada con la climatología pero esta vez también se merece un aparte. La pasada práctica casi llego en canoa a clase, por la lluvia, pero este viernes directamente me deje de miramientos y fui en ala delta. El viento que hacía no era normal ni siquiera para primavera (había que meterse piedras en los bolsillos para que no se le llevara el viento a uno). Pero como una es una alumna muy aplicada, con gran tesón se enfrenta a los elementos y consigue llegar a clase. Allí, aunque me han insinuado que no lo repita (yo como siempre he sido una subversiva pues lo repito) vuelvo a tener que buscar un ordenador QUE FUNCIONE (y lo pongo en mayúsculas porque a estas alturas para mí es un objeto mas buscado que el santo grial).Por fin a salvo en el refugio en el que se convierte el aula y con el material preciso empieza el trabajo.
La práctica de esa semana es de esas que motivan, porque consiste en hacer algo que a todo vicioso de las consolas soñaría con hacer: introducir trucos para un videojuego. Bien que fueran sólo los nombres de los trucos pero eso no quita la emoción de inventárselos. Para ello utilizamos la tabla hash que nos viene ya hecha en el api de java. Implementamos la clase de forma que por teclado se pedía la clave. Estas claves son las que previamente hemos introducido a la tabla hash mediante el comando ht.put(clave, truco). Si introducían una clave que no era correcta se imprimía por pantalla que la clave no era correcta. Si coincidía con algunas de las claves, se imprimía por pantalla el nombre del truco. No fue difícil mirando en los apuntes cómo se introducían los datos en la tabla. La única cosa a señalar es que la tabla hash del api trata objetos tipo Object. Por lo que cuando saquemos los datos tendremos que reconvertirlos al tipo de objeto que necesitamos. Otro modo más simple es definir el tipo que va a ser tanto la clave como el valor que vayamos a guardar dentro a la hora de la creación de la has tabla. Esto se haría con ayuda de los genéricos:
Hashtable<Integer, String> ht = new Hashtable<Integer,String>();
Al principio hicimos una clase que simplemente imprimía por pantalla la lista de todos los trucos. Luego quisimos mejorarla, pidiendo por consola la clave al usuario que fuera a utilizar el programa. La mayor complicación surgió a la hora de ponernos de acuerdo en elegir los trucos. De la imaginativa mente de un compañero que estuvo con nosotras ese día surgieron trucos tan curiosos como: “personaje_sinpiernas” o alguno más común como “desbloqueo_vehiculos”.
Del segundo ejercicio poco nos dio tiempo a hacer, los tres primeros apartados que no tuvieron mayores complicaciones y ya.
Más frikis que cuando entramos en clase pero también más sabias nos despedimos y como siempre no os perdáis el próximo capítulo de nuestras desventuras informáticas.
Saludos
7º práctica o de cómo agradecí mis clases de natación
Este viernes no sé ni como conseguí llegar a clase, había tal tormenta que creía que tendría que ir en piragua. Al final llegué como todo el mundo calada hasta los huesos, bueno como todo el mundo no, porque no sé si lo sabéis, pero lo que más le entusiasma a uno después de semejante remojón es que le tengan 30 minutos esperando a que le abran la puerta del aula. Como es comprensible, entré en el aula con un humor de perros y sin ninguna gana de empezar la práctica. Menos mal que debido a la lluvia muchos de mis compañeros llegaron tarde, lo cual me permitió jugar a los trileros, como no, en un día así todo se pone en contra tuya, con los ordenadores. Bueno una vez acomodada, empezando a secarme y con mi compañera por fin presente y anonadada con mis peripecias (nunca se cree ni la mitad de lo que le cuento) conseguí vencer mi mal humor y atender un poco en clase, esto es lo que sacamos en claro.
Implementamos la clase cola viéndola desde un punto diferente a la práctica anterior. En lugar de usar un array utilizamos el concepto de nodo y de lista enlazada. Esto consiste en una serie de cajitas (nodos) unidas por un cable o una cuerda (el puntero que apunta al siguiente nodo). Para ello crearemos una clase nodo que tendrá un atributo de la clase pieza y un atributo de la propia clase nodo que contendrá la referencia al nodo siguiente. Cada vez que se quiera añadir una nueva pieza se creará un nuevo objeto de la clase nodo y se pondrá al final de la lista, ocupando el último lugar y pasando su valor de atributo nodo a null, mientras el que estaba antes pasará a tener en su atributo nodo la referencia al nuevo nodo que acabamos de añadir. Esta ordenación y puesta del valor del atributo nodo se llevará a cabo en la clase Cola. En esta clase habrá que poner además un atributo que nos diga cual es el comienzo de la lista, es decir el primer nodo. El último ya se sabe cual es, el que tenga el atributo nodo apuntando a null. No nos dio tiempo a terminar de hacer esta parte, y aún menos el ejercicio 2.
Y esperando que mañana no tengamos que llegar en piragua a clase por las lluvias, nos despedimos y como siempre no os perdáis el próximo capítulo de nuestras desventuras informáticas.
Saludos
6º práctica o eso creo
Este viernes la verdad es que hay poco que contar, ya que debido a un reajuste de horarios, esta fue la única clase que tuvimos en todo el día. Lo cual propició tres cosas. Primera: el que no viniera ni dios a clase. Ya sé que esta mal decirlo porque cada uno es libre de asistir a las clases o no, pero va en venganza de mis compañeras que me restregaron lo bien que iban a dormir el viernes mientras que yo estaba en la universidad. Segunda: que aunque yo asistiera, procurara no abrir demasiado los ojos para no desvelarme y así poderme dormir a la vuelta. Y tercera: que al no haber jaleo mi compañera (menos dormida que yo) pudiera completar por una vez en el curso la práctica en clase ya que solo tenía dos problemas (¡hurra!). No nos dio tiempo a compilar pero eso seria ya demasiada suerte.
De la práctica en sí poco hay que decir. Lo que más costó fue como diseñar la clase figura, ya que cómo no había explicación ninguna al respecto, pues cada uno lo hizo un poco bastante como le vino en gana, desde lo más cutre que te puedas imaginar, a lo más rebuscado. Y nosotras… pff… ni lo uno ni lo otro ^^, o eso creo XD. Sólo voy a poner los métodos que decidimos implementar, porque creo que a estas alturas todos (los q seguimos la asignatura) ya sabemos hacerlo de sobra, aunque si alguien tiene duda sobre ello que me diga y lo pongo ^^. Primero, el constructor (que coloca la pieza en el medio del tablero una vez que se desencole, mediante la apropiada asignación de valores a los atributos x e y), un método toString para dar la posición de la pieza en forma de string, y un método mover que le permitiera moverse a la izquierda o a la derecha (se pasaría por parámetro al método la elección) y si no, que continuara hacia abajo la pieza. La clase cola la implementamos mediante un array, con un constructor, un método desencolar que previamente comprueba que no este vacía mediante la llamada al método estaVacia, y asimismo un método encolar con una comprobación previa de si está llena la cola mediante la llamada al método estaLlena. Y no hay nada más que decir, la verdad. Al menos a mi me resultó esta práctica menos pesada y más facilona que las anteriores, pero a cuestión de gustos…
Bueno ya se acabó. ¿A que sabe a poco? por eso no os perdáis el próximo capítulo de nuestras desventuras informáticas.
Saludos
5º práctica o porqué hacer un trío no es tan divertido como parece
Buenas aquí estamos otra vez, 5º práctica de OCA. Que puedo decir ya a estas alturas, la verdad, la mayoría de mis compañeros ya se han rajado, y esta es la principal razón por la cual una amiga me pedía que no la abandonara, dejándola sola ante el peligro de la despiadada clase de programación (cuando se te da bien es muy bonita y hasta oyes cantar pajaritos pero sino se te da bien….). A la que uno va solo para decepcionarse y saber que, aunque comente a todo el mundo que estudia programación, esto no quiere decir que sepa programar. Después de reunirse el consejo de sabias (se que esta mal decirlo pero ya que tengo que hablar de mi compañera y de mi misma prefiero ponernos un adjetivo positivo, y ya que estoy por aclarar, aclararé que nos reunimos porque somos una pareja democrática, y todas estas cosas se tienen que hablar, que luego queda ahí un resentimiento muy feo que nadie se atreve a comentar y que acaba con la amistad). Bueno, como iba diciendo, una vez reunido el consejo de sabias decidimos dar cobijo a nuestra solitaria compañera. De esta forma esta semana nos convertimos en un trío y he de decir una cosa, en estos tríos como en otros no se hecha nunca en falta la compañía, pero la verdad es que es bastante incomodo más que nada debido al reducido espacio. Por una parte estuvo bien porque éramos más a dar ideas de cómo solucionar los problemas lo malo es que también éramos más a dar ideas de cualquier tipo menos académicas. Visto lo visto, un trío es como todo, una vez para probar está bien, pero la semana que viene espero que la compañera de mi amiga se restituya en sus funciones de pareja que es lo que pienso hacer yo y así volver a la cotidianidad de la práctica.
Después de esta amena narración empezamos con la parte de programación que es la que realmente interesa.
Estuvimos viendo los dos distintos tipos de polimorfismo, el de sobrecarga de métodos y el de sobreescritura de métodos. El primero de ellos es simplemente la implementación de distintos métodos con el mismo nombre, pero que tienen distintos parámetros. A la hora de llamar al método que queremos en concreto, el programador no se tiene que estar pendiente de a cual de todos los métodos que se llaman igual realmente es el que quiere llamar, Java en tiempo de ejecución y según los parámetros que se le pasen decidirá cual es el método al que nos estábamos refiriendo. Se suele ver la utilización de éstos sobre todo en constructores. El de sobreescritura de métodos tiene que ver con la herencia. Se trata de modificar algún método que se hereda de la clase superior, para añadirle funcionalidades únicas de ese método para la clase derivada.
También nos hablaron de las clases abstractas y su utilidad y su ineficiencia frente a la herencia. Se trata de clases hechas parcialmente, estas clases incluyen atributos y métodos, que obligadamente toda clase q luego implemente esta clase abstracta deberá llevarlos. Es una forma de asegurarse que no se olvidará luego de ningún método ya sea intencionadamente o sin querer. Una interfaz es una clase abstracta pura. Las interfaces nos son útiles ya que gracias a ellas tenemos una forma de “herencia múltiple” puesto que una clase puedes implementar tantas interfaces quiera, que a su vez pueden estar implementadas de todas las que se quiera. Sin embargo, existe esa ineficacia respecto a la herencia en sí, como ya dije antes. Esta diferencia radica en que, cuando una clase implementa de una interfaz tiene que escribir todo el código perteneciente a los métodos y atributos de la interfaz en la propia clase derivada, es decir, si son varias clases que están implementando de una misma interfaz, todas y cada una de esas clases derivadas van a tener que poner en su propia clase el código que les obliga la interfaz, mas el suyo propio. Esto no pasa con la herencia. Si varias clases derivan de una superclase, a menos que se le quiera añadir alguna funcionalidad en especial a algún método en alguna de las clases derivadas (sobreescritura), no hay que volver a escribir el código en cada una de las clases derivadas, simplemente se hereda. El problema de la herencia, como ya se ha puso en anteriores comentarios, es que una clase sólo puede tener una superclase y nada más, y sin embargo puede tener todas las interfaces que se quieran.
La mayor parte del tiempo nos lo pasamos mirando la práctica anterior e intentando entender el código de las soluciones, pues sin haber resuelto la práctica anterior te perdías al intentar hacer esto. Está claro que de no llevarlas al día hechas es malo xD. Lástima que nos empiece a entrar en la cabeza a estas alturas… Y el resto del tiempo nos la pasamos mirando en la API sobre la clase Object
Bueno y sin mas advertencias en lo que a relaciones humanas se refiere, nos despedimos y como siempre no os perdáis el próximo capítulo de nuestras desventuras informáticas.
Saludos
4º práctica o lo que pudo haber sido la rebelión de las máquinas pero que al final no fue (hala!!! ya has desvelado el final de la práctica)
Es otra vez viernes y hay práctica de OCA, hurra!!!, y he de hacer una confesión pública, los ordenadores me odian (la verdad es que yo los odiaba a ellos primero, por colgarse en medio de un trabajo de 100 páginas cuando todavía no lo he guardado y otras lindezas varias que suelen hacer en cuanto te descuidas).Yo llegué a clase con ilusiones renovadas y todas esas historias que se promete uno asimismo cuando vuelve a confiar en aprobar y esas cosas, y lo primero que te pasa es que el ordenador no funciona. Bueno, no pasa nada, te cambias a otro y ya esta (hasta aquí todavía llega el buen humor). Luego cuando tienes la práctica abierta, el notepad++ y todo preparado, llega tu compañera y te dice que si te llegas a poner un poco más lejos de la pizarra iba a necesitar unos prismáticos para leerla, a lo que tu alegas airada que tenías un sitio decente pero que como siempre la informática te ha vencido y como penitencia te has retirado a las últimas filas. Como mi compañera es una descreída se acerca al ordenador y así sin amenazarlo ni nada (cosa que pocos reconocen pero que todos hacemos en cuanto nos cabrea un poco) el ordenador arranca. Yo me acerco al ordenador con cara de panoli y de “ya me las pagarás” y así como quien no quiere la cosa comenzamos la nueva práctica con cabreo y suficiencia pero habiendo ganado por primera vez a un ordenador (muajajajajajajajajajaja).
Como siempre el profesor empezó explicándonos a su modo el misterioso sentido y objetivo en esta vida de la práctica de ese día, vamos que nos explicó con otro ejemplo, q a mi parecer era mucho más claro el asunto este ‘extraño’ de la herencia. La práctica consistió en ir rellenado el código que faltaba en ciertas clases ya escritas, cosas muy sencillas que sólo requerían el conocimiento de la palabra reservada this que tantas veces ya hemos usado (o mejor dicho, deberíamos haber utilizado XD). La única complicación era conocer la palabra reservada que te permite reescribir código en la clase derivada proveniente de la clase base, que normalmente se utiliza para añadir alguna funcionalidad más. En el caso de la práctica, programando la clase atributo, utilizamos el código heredado de la clase miembro para el constructor y el método toString mediante la palabra reservada super, y añadíamos la parte explicita de la clase atributo, el tipo. Hay que tener en cuenta que una clase sólo puede heredar de una clase, por lo tanto la palabra super se refiere sólo a esa clase. Como consecuencia, aunque de la clase que herede, también esté heredando de otra clase, no se puede usar super.super();. El código entonces para el constructor de la clase atributo quedaría:
public Atributo(String nombre, int modificadores, String tipo ) { super(nombre, modificadores);
this.tipo = tipo;
}
De forma intuitiva también se podría poner Miembro.Miembro(nombre,modificadores); siendo Miembro la clase base.
Y el código para el método toString quedaría:
public String toString() { return super.toString() + “; TIPO = “ + tipo;
}
No me dio tiempo a comprobar que está bien esto, así que no os fiéis mucho de mi xD.
Bueno hasta aquí se acaba la historia y como siempre no os perdáis el próximo capítulo de nuestras desventuras informáticas.
Saludos
3º práctica y no última
09:00h, 7 de Marzo de 2008, 3º práctica de OCA ,el miedo se percibe en el ambiente.Ya es la tercera práctica y todas las esperanzas de aprobar esta asignatura aunque no tuviéramos ni idea de programar se han desvanecido. Mi compañera insiste en que probemos en la otra aula de prácticas y yo sabiendo que ya nadie (más que yo misma) puede ayudarme acepto con un aire de pasividad impropio de mí y además, arrastro conmigo a mis otras compañeras de prácticas (aunque tampoco se las ve con muchos ánimos de réplica a estas horas de la mañana). Una vez dentro del nuevo aula nuestra inexperiencia con los equipos nos obliga a cambiarnos hasta encontrar uno que funcione en el cual nos establecemos o más bien montamos el campamento base debido a la gran cantidad de bultos inútiles con los que cargas cuando eres estudiante. Una vez estuvo todo perfectamente ordenado para no interrumpir nuestra tarea empezamos a leernos la práctica.
El ejercicio 0 nos pareció fácil y fuimos capaces de reconocer todos los elementos, aunque, he de reconocer que las ampliaciones en la explicaciones del profesor no nos vinieron mal. Aclaró cosas, que aunque básicas aún no tenemos muchos de nosotros claras, tales como los atributos o los modificadores de acceso. Varias cosas que nos parecen útiles fueron cómo clonar fácilmente un objeto:
Punto p1 = new Punto (3,2);
Punto p3 = new (p1); // esto sirve para clonar/ hacer un duplicado del punto p1
O directamente el método clone:
Punto p4 = p1.clone();
Sobre los modificadores de acceso, nos explicó la utilidad y en qué casos es mejor utilizar el public, o el private tanto en métodos cómo en atributos. En el caso de los atributos, normalmente es más aconsejable el utilizar el private, para ayudar a la ocultación de datos y sobre todo para que los usuarios finales no puedan cambiar atributos, ya sea sin querer o intencionadamente, que puedan afectar de forma negativa al resto de código, y accediendo a éstos sólo mediante métodos públicos hechos por el programador de forma que ya no puedan estropear el código sin darse cuenta. Para los métodos se suele utilizar el modificador de acceso public, pero por ejemplo, un método que sea interno de otro método no tiene porque interesar al usuario final, y no hay razón para que éste pueda utilizarlo. En este caso se utilizaría el modificador private.
Por último, nos habló de la palabra reservada static, su definición y lo que es más útil, para que nos puede servir en verdad a la hora de programar. Refiriéndonos a atributos, nos puede servir para por ejemplo si tenemos muchos objetos de una clase “E”, con un atributo público estático “b”, que tiene el mismo valor para todos o casi todos los objetos de esa clase, podemos decir directamente:
E.b = 7;
Con esto todos los atributos llamados b, de todos los objetos de la clase E pasaría a tener el valor 7. Es una forma de ahorrarnos el escribir código. Si nos fijamos, lo llamamos directamente de la clase “E” y no de un objeto en concreto. Y si alguno de los objetos no tiene ese valor se le puede cambiar sólo a ese objeto tal y como lo haríamos normalmente, es decir, por ejemplo el atributo “b” del objeto “coche” tiene valor 5, se pondría:
Coche.b = 5;
Y tan sólo se cambiaría el valor de b de ese objeto. Los demás objetos seguirían teniendo valor 7. No nos dio tiempo a hacer mucho de la práctica, pero al menos a mi, me fueron bastante útiles las explicaciones para aclararme en ciertos aspectos.
Ahora la segunda parte con la compañera retransmitiendo desde el campo de batalla. Las hordas del general Práctica III avanzaban incansables con el ejercicio 0 en la vanguardia. No supuso un gran problema para nuestros métodos bien entrenados en calcular distancias entre varios puntos, haciendo infalibles sus tiros y derrotándolos en batalla feroz en el altiplano del notepad++. Al sufrir problemas de intendencia no pudimos seguir con la misión y no hubo más remedio que replegarnos en nuestras casitas XD.
Bueno sin más que contar por el momento nos despedimos de vosotros hasta la semana que viene y como siempre no os perdáis el próximo capítulo de nuestras desventuras informáticas.
Saludos