<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Selestoca's Weblog</title>
	<atom:link href="http://selestoca.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://selestoca.wordpress.com</link>
	<description>Blog de OCA creado por Estefania y Selene</description>
	<lastBuildDate>Mon, 26 May 2008 10:39:08 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='selestoca.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Selestoca's Weblog</title>
		<link>http://selestoca.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://selestoca.wordpress.com/osd.xml" title="Selestoca&#039;s Weblog" />
	<atom:link rel='hub' href='http://selestoca.wordpress.com/?pushpress=hub'/>
		<item>
		<title>PRACTICA 12</title>
		<link>http://selestoca.wordpress.com/2008/05/26/practica-12/</link>
		<comments>http://selestoca.wordpress.com/2008/05/26/practica-12/#comments</comments>
		<pubDate>Mon, 26 May 2008 10:39:08 +0000</pubDate>
		<dc:creator>selestoca</dc:creator>
				<category><![CDATA[Prácticas OCA]]></category>

		<guid isPermaLink="false">http://selestoca.wordpress.com/?p=26</guid>
		<description><![CDATA[Buena ya que da menos que antes, ánimos &#8230;. Esperamos que este último post os ayude a entender mejor sobre jmf(que por sí sóla parece un mundo&#8230;jeje), nos a costado un poco entenderlo; pero viendo apuntes y y recordando las prácticas de servidores(para quienes la tengan ), ayuda  entenderlo mejor. JMF(Java Media Framework) Introducción: Los paquetes [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=selestoca.wordpress.com&amp;blog=2943795&amp;post=26&amp;subd=selestoca&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Buena ya que da menos que antes, ánimos &#8230;. Esperamos que este último post os ayude a entender mejor sobre jmf(que por sí sóla parece un mundo&#8230;jeje), nos a costado un poco entenderlo; pero viendo apuntes y y recordando las prácticas de servidores(para quienes la tengan ), ayuda  entenderlo mejor.</p>
<p>JMF(Java Media Framework)</p>
<p>Introducción:</p>
<p>Los paquetes principales que debemos tener presente en JMF son aquellos de los que haremos uso de sus clases principales , por ejemplo para <strong>data source</strong> que es una clase del paquete de <strong>javax.media.protocol</strong>, clases <strong>Player y Processor</strong> que son interfaces de <strong>javax.media</strong>, clase <strong>Data Sink</strong> que es una clase del paqiuete  <strong>javax.media</strong>.</p>
<p>Las clases principales del JMF son la <strong>adquisición de datos</strong> (captura desde un dispositivo físico, lectura de un fichero o recepción desde la red), <strong>procesado</strong> (aplicación de efectos como filtrado o realces, compresión y/o descompresión, conversión entre formatos) y la <strong>salida de datos</strong> (presentación, almacenamiento en fichero o transmisión a través de la red). :</p>
<p><a name="claseDataSource"><strong>Clase </strong></a><span class="SpellE"><span><span class="codigoenlinea"><strong>DataSource</strong>.- Esta clase se encarga de encapsular la localización, el protocolo de transferencia y el software necesarios para la adquisición. Por lo tanto una vez obtenido un <span class="SpellE"><span class="codigoenlinea">DataSource </span>no</span> se puede asociar a otra fuente de datos.</span></span></span></p>
<p><span class="SpellE"><span><span class="codigoenlinea"><strong>Player.-</strong> <span style="font-family:Times New Roman;">Un </span><span style="font-family:Courier New;">Player </span><span style="font-family:Times New Roman;">es un objeto encargado de procesar cierto flujo de datos multimedia y presentarlo en su preciso momento.</span></span></span></span></p>
<p><span class="SpellE"><span><span class="codigoenlinea"><strong>DataSink.-</strong> <span style="font-family:Times New Roman;">La función de este objeto es obtener el </span><em><span style="font-family:Times New Roman;">media stream </span></em><span style="font-family:Times New Roman;">y almacenarlo en un fichero local, a través de la red o transmitirlo mediante RTP.</span></span></span></span> </p>
<p><strong>EJERCICIO 1 Y 2</strong></p>
<p>Ponemos los 2 ejercicios juntos ya que lo único que había que poner en el ejercicio 2 era un botón que hace que si se pulsa una vez, cuando finaliza el video se para la reproducción y al pulsarle de nuevo, cuando finaliza el video se repite una y otra vez.</p>
<p>Hemos creado una clase que implemente ControllerListener para poder crear el reproductor y el ActionListener para los eventos del JButton. Lo que hemos necesitado para crearlo a sido un Player, JButton y un Componente.</p>
<p>Para crear el player lo hemos hecho a través de una URL que carga el archivo pasándole el nombre del fichero como un String. El player se crea a través del Manager.createPlayer(URL url) y luego le añadimos su escuchador: addControllerListener(this) (this porque lo creamos en la misma clase).</p>
<p>Implementamos el método ActionPerformed, que simplemente nos cambiará un boolean para que se repita o no la reproducción cuando se detecte un evento de ratón sobre el botón.<br />
También implementamos el método controllerUpdate y utilizamos los eventos RealizeCompleteEvent para poder añadir los componentes, ya que solo se pueden añadir cuando el player esta realizado; y el evento de EndOfMediaEvent para que se repita o no cuando finaliza la reproducción.</p>
<p> Os añadimos nuestro código para aquellos que os interese:</p>
<p><a href="http://selestoca.files.wordpress.com/2008/05/jmf1.jpg"><img class="alignnone size-thumbnail wp-image-27" src="http://selestoca.files.wordpress.com/2008/05/jmf1.jpg?w=128&#038;h=75" alt="" width="128" height="75" /></a><a href="http://selestoca.files.wordpress.com/2008/05/jmf2.jpg"><img class="alignnone size-thumbnail wp-image-28" src="http://selestoca.files.wordpress.com/2008/05/jmf2.jpg?w=79&#038;h=96" alt="" width="79" height="96" /></a><a href="http://selestoca.files.wordpress.com/2008/05/jmf3.jpg"><img class="alignnone size-thumbnail wp-image-29" src="http://selestoca.files.wordpress.com/2008/05/jmf3.jpg?w=109&#038;h=96" alt="" width="109" height="96" /></a></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/selestoca.wordpress.com/26/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/selestoca.wordpress.com/26/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/selestoca.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/selestoca.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/selestoca.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/selestoca.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/selestoca.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/selestoca.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/selestoca.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/selestoca.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/selestoca.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/selestoca.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/selestoca.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/selestoca.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/selestoca.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/selestoca.wordpress.com/26/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=selestoca.wordpress.com&amp;blog=2943795&amp;post=26&amp;subd=selestoca&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://selestoca.wordpress.com/2008/05/26/practica-12/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/dd092c353beedf780559e1027539a1b9?s=96&#38;d=identicon" medium="image">
			<media:title type="html">selestoca</media:title>
		</media:content>

		<media:content url="http://selestoca.files.wordpress.com/2008/05/jmf1.jpg?w=128" medium="image" />

		<media:content url="http://selestoca.files.wordpress.com/2008/05/jmf2.jpg?w=79" medium="image" />

		<media:content url="http://selestoca.files.wordpress.com/2008/05/jmf3.jpg?w=109" medium="image" />
	</item>
		<item>
		<title>Práctica 11</title>
		<link>http://selestoca.wordpress.com/2008/05/21/practica-11/</link>
		<comments>http://selestoca.wordpress.com/2008/05/21/practica-11/#comments</comments>
		<pubDate>Wed, 21 May 2008 14:58:26 +0000</pubDate>
		<dc:creator>selestoca</dc:creator>
				<category><![CDATA[Prácticas OCA]]></category>

		<guid isPermaLink="false">http://selestoca.wordpress.com/?p=24</guid>
		<description><![CDATA[Bueno, bueno&#8230; ya queda menos y por fin terminamos con esto!!! SWING Y EVENTOS&#8230; En esta práctica solo hicimos en clase hasta el apartado 3.. APARTADO 1 Más o menos nos defendimos bien y ya con el juego teniamos idea de como hacerlo. Nosotras implementamos el ActionListener ya que solo tiene un método y nos parecía [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=selestoca.wordpress.com&amp;blog=2943795&amp;post=24&amp;subd=selestoca&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Bueno, bueno&#8230; ya queda menos y por fin terminamos con esto!!!</p>
<p><strong>SWING Y EVENTOS&#8230;</strong></p>
<p>En esta práctica solo hicimos en clase hasta el apartado 3..</p>
<p>APARTADO 1</p>
<p>Más o menos nos defendimos bien y ya con el juego teniamos idea de como hacerlo.<br />
Nosotras implementamos el ActionListener ya que solo tiene un método y nos parecía la forma más fácil de hacerlo. Tambien se podía hacer heredando de MouseAdapter, porque si se implementa, tiene muchos métodos que no se van a utilizar.<br />
Este es nuestro código:</p>
<div>
<div><span style="font-size:x-small;"><span style="font-size:x-small;"> </span></span></div>
<div><span style="font-size:x-small;"><span style="font-size:x-small;"> </span></span></div>
<div><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;color:#0000ff;">import</span><span style="font-size:x-small;"> javax.swing.*;<br />
</span><span style="font-size:x-small;color:#0000ff;">import</span><span style="font-size:x-small;"> java.awt.event.*;<br />
</span><span style="font-size:x-small;color:#0000ff;">import </span></span></span><span style="font-size:x-small;">java.awt.*;</span></div>
<div><span style="font-size:x-small;"><span style="font-size:x-small;"> </span></span></div>
<div><span style="font-size:x-small;"><span style="font-size:x-small;"> </span></span></div>
<div><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;color:#0000ff;">public</span><span style="font-size:x-small;"> </span><span style="font-size:x-small;color:#0000ff;">class</span><span style="font-size:x-small;"> Simple00GUI </span><span style="font-size:x-small;color:#0000ff;">implements</span><span style="font-size:x-small;"> </span><span style="font-size:x-small;color:#2b91af;">ActionListener</span><span style="font-size:x-small;">{ </span></span></span><span style="font-size:x-small;"><span style="font-size:x-small;"> </span></span></div>
<p><span style="font-size:x-small;"><span style="font-size:x-small;"> </p>
<p></span></span></p>
<div><span style="font-size:x-small;">JButton boton;</span></div>
<div><span style="font-size:x-small;color:#0000ff;">public</span><span style="font-size:x-small;">Simple00GUI(){</span></div>
<div>
<div><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;color:#0000ff;"><span style="color:#000000;">JFrame f = </span>new</span><span style="font-size:x-small;"> JFrame(</span><span style="font-size:x-small;color:#a31515;">&#8220;Boton&#8221;</span><span style="font-size:x-small;">);<br />
boton = </span><span style="font-size:x-small;color:#0000ff;">new</span><span style="font-size:x-small;"> JButton(</span><span style="font-size:x-small;color:#a31515;">&#8220;Pulsa&#8221;</span><span style="font-size:x-small;">);<br />
f.add(boton);<br />
f.pack();<br />
f.setVisible(</span><span style="font-size:x-small;color:#0000ff;">true</span><span style="font-size:x-small;">);<br />
boton.addActionListener(</span><span style="font-size:x-small;color:#0000ff;">this</span></span></span><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;">);<br />
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); </span></span></span></div>
<div><span style="font-size:x-small;"><span style="font-size:x-small;"> </span></span></div>
<div><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;color:#0000ff;">public</span><span style="font-size:x-small;"> </span><span style="font-size:x-small;color:#0000ff;">void</span><span style="font-size:x-small;"> actionPerformed(</span><span style="font-size:x-small;color:#2b91af;">ActionEvent </span><span style="font-size:x-small;">ae){</span></span></span></div>
<div><span style="font-size:x-small;"><span style="font-size:x-small;"> </span></span></div>
<p><span style="font-size:x-small;"><span style="font-size:x-small;"> </p>
<p></span></span></p>
<div>
<div><span style="font-size:x-small;"><span style="font-size:x-small;"> </span></span><span style="font-size:x-small;color:#0000ff;">if</span><span style="font-size:x-small;">(ae.getSource() == boton){</span></div>
<div>
<div><span style="font-size:x-small;"><span style="font-size:x-small;"> </span></span><span style="font-size:x-small;color:#2b91af;">System</span><span style="font-size:x-small;">.out.println(boton.getText());}<br />
}</span></div>
<div><span style="font-size:x-small;"> </span><span style="font-size:x-small;color:#0000ff;">public</span><span style="font-size:x-small;"> </span><span style="font-size:x-small;color:#0000ff;">static</span><span style="font-size:x-small;"> </span><span style="font-size:x-small;color:#0000ff;">void</span><span style="font-size:x-small;"> main(</span><span style="font-size:x-small;color:#2b91af;">String</span><span style="font-size:x-small;">[]args){</span></div>
<div>
<div><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;color:#0000ff;"><span style="color:#000000;">Simple00GUI simple =</span> new</span><span style="font-size:x-small;"> Simple00GUI();</span></span></span></div>
<p><span style="font-size:x-small;">}<br />
</span><span style="font-size:x-small;">}</span></p>
<p><span style="font-size:x-small;">Si no lo entendeis o algo nos lo preguntais&#8230;</span></p>
<p>APARTADO 2</p>
<p>Este apartado se parece mucho a un ejercicio que hicimos otro día con etiquetas. El código lo hemos puesto igual que el Simple00GUI añadiendo una etiqueta.</p>
<p>En el ActionPerformed añadimos la opción para cambiar el fondo con<br />
if(getBackground() == Color.BLUE)<br />
etiqueta.setBackfground(Color.YELLOW);<br />
else<br />
&#8230;</p>
<p>Además añadimos un System.out.println(&#8230;) con el nombre del hilo que se esta ejecutando en ese momento que nos sirve un poco de repaso.</p>
<p><span style="font-size:x-small;">APARTADO 3</span></p>
<p><span style="font-size:x-small;">En este apartado nos liamos bastante&#8230; nos pidio el profesor que el hilo que cambiase el color de fondo lo hiciese otro hilo y no el main. El programa no nos compilaba bien&#8230;</span></p>
<p><span style="font-size:x-small;">Creamos una clase Hilo que implementaba Runnable con su método run() que se encargaba de cambiar el color de fondo. En el main creamos un Thread con el hilo y un BufferedReader para que leyese el ENTER del teclado&#8230; pero aún asi, entre la falta de tiempo y el lio que nos hicimos no pudimos terminarlo.</span></p>
</div>
</div>
</div>
</div>
</div>
<p> </p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/selestoca.wordpress.com/24/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/selestoca.wordpress.com/24/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/selestoca.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/selestoca.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/selestoca.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/selestoca.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/selestoca.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/selestoca.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/selestoca.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/selestoca.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/selestoca.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/selestoca.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/selestoca.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/selestoca.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/selestoca.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/selestoca.wordpress.com/24/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=selestoca.wordpress.com&amp;blog=2943795&amp;post=24&amp;subd=selestoca&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://selestoca.wordpress.com/2008/05/21/practica-11/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/dd092c353beedf780559e1027539a1b9?s=96&#38;d=identicon" medium="image">
			<media:title type="html">selestoca</media:title>
		</media:content>
	</item>
		<item>
		<title>PRACTICA 10</title>
		<link>http://selestoca.wordpress.com/2008/05/16/practica-10/</link>
		<comments>http://selestoca.wordpress.com/2008/05/16/practica-10/#comments</comments>
		<pubDate>Fri, 16 May 2008 07:26:06 +0000</pubDate>
		<dc:creator>selestoca</dc:creator>
				<category><![CDATA[Prácticas OCA]]></category>

		<guid isPermaLink="false">http://selestoca.wordpress.com/?p=23</guid>
		<description><![CDATA[Swing y Eventos EJERCICIO1 Qué es un proceso y un programa, qué diferencias existe entre ambas? Si vamos a una descripción teórica un PROCESO es dinámico, su estado cambia con el tiempo, según la CPU va ejeucutando las diversas opoeracines que se enumeran en un programa. Un PROGRAMA es algo dinámico, es el conjunto de [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=selestoca.wordpress.com&amp;blog=2943795&amp;post=23&amp;subd=selestoca&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Swing y Eventos</p>
<p><strong>EJERCICIO1</strong></p>
<p>Qué es un proceso y un programa, qué diferencias existe entre ambas?</p>
<p>Si vamos a una descripción teórica un PROCESO es dinámico, su estado cambia con el tiempo, según la CPU va ejeucutando las diversas opoeracines que se enumeran en un programa. Un PROGRAMA es algo dinámico, es el conjunto de instrucciones máquina que ha generado el compilador a partir del código fuente.</p>
<p>En clase se dijo que es complicado dar una diferencia entre un proceso y un programa, lo que se  explicó es que solo se puede ejecutar una tarea por proceso, repartiendo el tiempo en instanates pequeños para cada proceso, el cpu los trata por vez. Utilizando una cola para asignar prioridades.</p>
<p>Los primeros apartados nos dicen que compilemos los programas que nos dan Ding, Dong, DingDongPoor</p>
<p>Ding -&gt; al dar un enter se lanaza por cmd mensajes de DING!. Al revisar el código no encontramos nada fuera de lo común un try para tratar las excepciones que que se pueden dar con Sistem.in.read</p>
<p>Dong -&gt; cada cierto tiempo se imprime por pantalla DONG!. Al ver el código, la sentencia que no s llamó la atención fué <strong>&#8220;Thread.sleep(1000)&#8221;</strong> y la explicación que se dio es que sirve para asignar un tiempo de espera para qeu se realize luego algo.</p>
<p>DingDongPoor-&gt; el código es la unión de los dos programas anteriores, funciona mal ya que hay un &#8216;cruce&#8217; en el tiempo de ejecución del mismo, no sabe cuando esperar por el enter o cuando estar en estado de dormir para cada Dong!.</p>
<p>Al lanzar simultaneaente Ding y Dong comprobamos que es compòrtamiento es como el de DingDongPoor, En linux pueden ejecutarse los dos programas a la vez y realizando llo que el ususario realmente espera, que a cada enter aparez el DING! y cda cierto tiempoel DONG!.</p>
<p> </p>
<p><strong>EJERCICIO 2</strong></p>
<p>En esta parte hablamos sobre los hilos de ejecución conocido s como THREADS, son hilos asociados a un mismo proceso, de esta manera podremos hacer que en el sistema operativo  realice varias tareas a la vez. Para lanzar nuevos hilos necesitamos de: Thread-&gt;start() y Runnable-&gt;run(), que es cada cosa?</p>
<p><span style="text-decoration:underline;">Runnable</span>.- Es un interfaz, por tanto no podemos crear un objeto de tal tipo. Contiene un método llamado run(), que es lo que se hará en el programa.</p>
<p><span style="text-decoration:underline;">Thread.-</span> Hilo,  de tal forma que  mediante Thread t  = new Threads (r)  obtengo un hilo que está relacinado con Runnable.</p>
<p><span style="text-decoration:underline;">start()-&gt;</span> crea un thread y luego llama a run para hacer lo que dice run.</p>
<p>Existen dos formas de conseguir threads en java, Una es implementando la interface <strong>Runnable</strong>, la otra es extender la clase <strong>Thread.</strong></p>
<p>Algo a tener en cuenta muy importante es que no puedo invocar a run directamente, ya que no está lanzada la bifurcación(instrucción que crea una copia de un proceso en sistemas operativos) y eso lo hace start().</p>
<p><strong>EJERCICIO 3</strong></p>
<p>Vimos tambien las condiciones de carrera, <span style="font-family:Courier New;">RaceCondition</span>. Las condiciones de carrera se producen cuando 2 hilos intentan acceder al mismo recurso al mismo tiempo. El código que tuvimos que ejecutar lanzaba 2 hilos y lo primero que te esperas es que salgan 10.000 ceros y luego 10.000 unos y no es así. Lo que obsevamos es que salen los ceros y los unos aleatoriamente, es decir, sale por pantalla el primero que llega al recurso.</p>
<p>Una de las formas que pensamos para evitar las condiciones de carrera de este código es añadir un Thread.sleep(1000); por ejemplo, entre la llamada al start() de los 2 hilos para que el 2º hilo espere el tiempo necesario para que se impriman antes los ceros.</p>
<p>El siguiente código que vimos, <span style="font-family:Courier New;">RaceConditionSolved</span>,  nos soluciona las condiciones de carrera utilizando un Vector. Viendo el código vimos que añaden una &#8216;z&#8217; que realmente, si la quitamos, el programa se ejecuta de igual manera.<br />
Le preguntamos al profesor el porqué de esa &#8216;z&#8217; que se añade y nos dijo que es un valor por defecto que se suele añadir a la hora de programar y se utiliza como &#8220;control&#8221; y, efectivamente, no influía en nada.</p>
<p> </p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/selestoca.wordpress.com/23/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/selestoca.wordpress.com/23/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/selestoca.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/selestoca.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/selestoca.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/selestoca.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/selestoca.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/selestoca.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/selestoca.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/selestoca.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/selestoca.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/selestoca.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/selestoca.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/selestoca.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/selestoca.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/selestoca.wordpress.com/23/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=selestoca.wordpress.com&amp;blog=2943795&amp;post=23&amp;subd=selestoca&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://selestoca.wordpress.com/2008/05/16/practica-10/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/dd092c353beedf780559e1027539a1b9?s=96&#38;d=identicon" medium="image">
			<media:title type="html">selestoca</media:title>
		</media:content>
	</item>
		<item>
		<title>PRACTICA 9</title>
		<link>http://selestoca.wordpress.com/2008/05/07/practica-9/</link>
		<comments>http://selestoca.wordpress.com/2008/05/07/practica-9/#comments</comments>
		<pubDate>Wed, 07 May 2008 09:58:58 +0000</pubDate>
		<dc:creator>selestoca</dc:creator>
				<category><![CDATA[Prácticas OCA]]></category>

		<guid isPermaLink="false">http://selestoca.wordpress.com/?p=18</guid>
		<description><![CDATA[SWING Estamos en la parte más interesante de la asignatura, la parte donde podemos ver más real nuestros programas&#8230;. Para los que asistíamos con Alberto tenemos nuevo profesor. Empezamos con un concepto básico: Qué es una GUIs(interfaz gráfica)? Podríamos pensar que es representar gráficamente un programa; pero es un concepto no del todo acertado ya que es la [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=selestoca.wordpress.com&amp;blog=2943795&amp;post=18&amp;subd=selestoca&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>SWING</p>
<p>Estamos en la parte más interesante de la asignatura, la parte donde podemos ver más real nuestros programas&#8230;. Para los que asistíamos con Alberto tenemos nuevo profesor.</p>
<p>Empezamos con un concepto básico: Qué es una GUIs(interfaz gráfica)? Podríamos pensar que es representar gráficamente un programa; pero es un concepto no del todo acertado ya que es la manera en la que el programa se comunica con el usuario, en busca de respuestas que el usuario puede introducirlas por medio del ratón o del teclado. En la parte teórica viene conceptos básicos sobre las interfaces que valen la pena revisar y entenderlas.</p>
<p><strong>Ejercicio 1:</strong></p>
<p>Tenemos que importar nuevas clases, adaptadas cada una según para lo que el usuario necesite.</p>
<p>JFrame-&gt; Usada para ventanas       JPanel-&gt; Usada para contenedores        JLabel-&gt;Usada para etiquetas</p>
<p>Resolviendo cada guión del ejercio 1, lo hicimos en conjunto, deteniéndonos para analizar el comportamiento de cada método.</p>
<p>En el guión 5 para modificar el tamaño  tenemos que hacer uso de <span style="font-family:Courier New;">frame.setSize(400,200);</span>Para cambiar el color de fondo(guión 6) usamos <span style="font-family:Courier New;">label.setBackground(Color.BLUE)</span> y <span style="font-family:Courier New;">label.setOpaque(true)</span>, ya que el Api de Java nos dice que si la etiqueta no es opaca, el color no se visualiza.</p>
<p> <strong>Ejercicio 2</strong></p>
<div>Manejadores de ventana:</div>
<div>1. Esta parte es más teórica</div>
<div>2. Si se anula el manejador de ventana, lo que ocurre es que en el momento de cerrarla, el programa se mantiene en ejecución y para dejar de ejecutarse deberíamos cerrarlo a lo bestia (Ctrl+Alt+Supr) y si se ejecuta desde MS-DOS con Ctrl+C vale.</div>
<div>3. se utilizaria f.<span style="font-family:Courier New;">setUndecorated(true), entonces nos quitaría el &#8220;decorado&#8221; de la ventana y no nos pondría los botones de cerrar, minimizar y maximizar. Por lo tanto, para cerrar la ventana tendríamos que hacerlo como el apartado 2.</span></div>
<div><span style="font-family:Courier New;">4. Se utilizaría el método </span><span style="font-family:Courier New;">JFrame.setDefaultLookAndFeelDecorated(</span><span style="font-family:Courier New;"><span style="font-family:Courier New;"><span style="font-family:Courier New;"><span style="color:#941edf;font-family:Courier New;">true</span><span style="font-family:Courier New;">);</span></span></span></span><span style="font-family:Courier New;"><span style="font-family:Courier New;"><span style="font-family:Courier New;"> que se pondría al principio de todo justo despues de la linea del main porque sino no se visualizaria.</span></span></span></div>
<p><strong></strong></p>
<p><strong>Ejercicio 3</strong></p>
<div>Layouts, se consideran &#8220;plantillas&#8221;, que al ponerlas establece un esquema de como se van a colocar los elementos dentro del panel.</div>
<div>En este ejercicio hemos llegado hasta el apartado 5. Para poner el color a las etiquetas hemos tenido que hacerlo como en el apartado 6 del ejercicio 1. Para colocar las etiquetas como nos piden, debemos poner como plantilla un BorderLayout:</div>
<div><span style="font-size:x-small;">f.setLayout(</span><span style="font-size:x-small;color:#0000ff;">new</span><span style="font-size:x-small;"> </span><span style="font-size:x-small;color:#2b91af;">BorderLayout</span><span style="font-size:x-small;">());</span></div>
<div><span style="font-size:x-small;">Aunque para este caso no haria falta, puesto que se pueden colocar las etiquetas añadiendolas al contenedor principal y poniendo su posición:  <span style="font-size:x-small;">f.add(j1, </span><span style="font-size:x-small;color:#2b91af;">BorderLayout</span><span style="font-size:x-small;">.NORTH);</span></span></div>
<div><span style="font-size:x-small;"> </span></div>
<p><span style="font-size:x-small;"> </p>
<p></span></p>
<div><span style="font-size:x-small;"> </span><span style="font-size:x-small;">Para colocar una imagen desde un archivo hemos utilizado la clase ImageIcon:</span></div>
<div><span style="font-size:x-small;"> </span><span style="font-size:x-small;"><span style="font-size:x-small;">ImageIcon imagen =</span>  </span><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;color:#0000ff;">new</span><span style="font-size:x-small;"> ImageIcon(</span><span style="font-size:x-small;color:#a31515;">&#8220;arrow.jpg&#8221;</span><span style="font-size:x-small;">);</span></span></span></div>
<div><span style="font-size:x-small;"><span style="font-size:x-small;"> </span></span><span style="font-size:x-small;">Y luego la añadimos a una etiqueta:</span> <br />
 J<span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;">Label j5 =</span> </span></span> <span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;color:#0000ff;">new</span><span style="font-size:x-small;"> JLabel(imagen);</span></span></span></span></div>
<div><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;">y se añadiría al panel igual que las demás etiquetas.</span></span></span></span></div>
<div><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;">Os ponemos nuestro código aquí:<br />
</span></span></span></span></div>
<div><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;"> 
<a href='http://selestoca.wordpress.com/2008/05/07/practica-9/parte1/' title='Parte 1'><img data-attachment-id='19' data-orig-size='738,519' data-liked='0'width="128" height="90" src="http://selestoca.files.wordpress.com/2008/05/parte1.jpg?w=128&#038;h=90" class="attachment-thumbnail" alt="Parte 1" title="Parte 1" /></a>
<a href='http://selestoca.wordpress.com/2008/05/07/practica-9/parte2/' title='Parte 2'><img data-attachment-id='22' data-orig-size='707,500' data-liked='0'width="128" height="90" src="http://selestoca.files.wordpress.com/2008/05/parte2.jpg?w=128&#038;h=90" class="attachment-thumbnail" alt="Parte 2" title="Parte 2" /></a>
</span></span></span></div>
<div><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;"></p>
<div></div>
<p> </p>
<p></span></span></span></div>
<div><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;"></span></span></span></span></div>
<p><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;"></p>
<div><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;"> </span></span></span><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;"> </span></span></span></div>
<div><span style="font-size:x-small;"> </span></div>
<div><span style="font-size:x-small;"> </span></div>
<p></span></span></span><span style="font-size:x-small;"> </p>
<p></span></span></p>
<div><span style="font-size:x-small;"> </span></div>
<p> </p>
<p> </p>
<p></span></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/selestoca.wordpress.com/18/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/selestoca.wordpress.com/18/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/selestoca.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/selestoca.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/selestoca.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/selestoca.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/selestoca.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/selestoca.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/selestoca.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/selestoca.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/selestoca.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/selestoca.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/selestoca.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/selestoca.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/selestoca.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/selestoca.wordpress.com/18/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=selestoca.wordpress.com&amp;blog=2943795&amp;post=18&amp;subd=selestoca&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://selestoca.wordpress.com/2008/05/07/practica-9/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/dd092c353beedf780559e1027539a1b9?s=96&#38;d=identicon" medium="image">
			<media:title type="html">selestoca</media:title>
		</media:content>

		<media:content url="http://selestoca.files.wordpress.com/2008/05/parte1.jpg?w=128" medium="image">
			<media:title type="html">Parte 1</media:title>
		</media:content>

		<media:content url="http://selestoca.files.wordpress.com/2008/05/parte2.jpg?w=128" medium="image">
			<media:title type="html">Parte 2</media:title>
		</media:content>
	</item>
		<item>
		<title>Práctica 8</title>
		<link>http://selestoca.wordpress.com/2008/04/20/practica-8/</link>
		<comments>http://selestoca.wordpress.com/2008/04/20/practica-8/#comments</comments>
		<pubDate>Sun, 20 Apr 2008 13:27:07 +0000</pubDate>
		<dc:creator>selestoca</dc:creator>
				<category><![CDATA[1]]></category>
		<category><![CDATA[Add new tag]]></category>

		<guid isPermaLink="false">http://selestoca.wordpress.com/?p=17</guid>
		<description><![CDATA[RECURSIVIDAD Y TABLAHASH TablaHash Java nos la ofrece de manera gratuita, solo tenemos que hacer uso de ellos. Como sabemos una tabla nos sirve para introducir o sacar objetos. Un punto muy importante es el comentario que Alberto planteó en clase. ¿De todas las estructuras de datos vistos en clase (arrays, listas, pilas, colas y tablahash) [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=selestoca.wordpress.com&amp;blog=2943795&amp;post=17&amp;subd=selestoca&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>RECURSIVIDAD Y TABLAHASH</p>
<p><strong>TablaHash</strong></p>
<p>Java nos la ofrece de manera gratuita, solo tenemos que hacer uso de ellos. Como sabemos una tabla nos sirve para introducir o sacar objetos.</p>
<p>Un punto muy importante es el comentario que Alberto planteó en clase. ¿De todas las estructuras de datos vistos en clase (arrays, listas, pilas, colas y tablahash) en cuál cuesta menos encontrar un objeto?</p>
<p><strong>Arrays.-</strong> En algún momento tendré que recorrer el array, Si está vacío tardaré menos en encontrar una posición y si está lleno a menos que no utilice una variable que me vaya indicando la posición actual en la que me encuentro tardaría más. Por tanto el tiempo que tarde en encontrar a una persona (hemos supuesto el  ejemplo de una agenda) será : <strong>n/2</strong> -&gt; tiempo promedio, ya que en el mejor de los casos, si está al principio no tardaré tanto, y en el peor de los casos si está al final <strong>&#8216;n&#8217;.</strong> En resumen en <strong>insertar</strong> a una persona utilizando arrays tradaré una <strong>constante</strong> y en <strong>encontrarla n/2.</strong> Tengo un desperdicio de memoria.</p>
<p><strong>Lista.-</strong> Igual que los arrays en un determinado momento tendré que recorrer el array. Tardaré en <strong>insertar </strong>una persona a la agenda una <strong>constante</strong> y en <strong>encontrar </strong> <strong>(n+1)/2 = n/2</strong> cuando tendo varias personas.</p>
<p><strong>Cola .-</strong> No depende de lo que se tenga anterior, recordar que para estos algoritmos el api nos ofrece unos métodos (peek,enqueue,dequeue) qu enos faciltian el trabajo. En <strong>insertar</strong> una persona tardaré una<strong> constante</strong> y en <strong>encontrarlo</strong> tardaré<strong> &#8216;n&#8217;</strong> ya que para una cola primero los introduzco y luego tendré que hacer uso de una temp para volverlos a recorrer y encontrar lo que buscamos. Caso muy similar para la <strong>Pila.</strong> Por lo que en términos de eficiencia temporal no es muy aconsejable utilizar pilas y colas.</p>
<p><strong>TablaHash.-</strong> En <strong>encontrar </strong>una persona una <strong>constante</strong> y en <strong>buscarla</strong> también una <strong>constante</strong>, ya que No tiene en cuenta lo que anteriormente esté insertado y a cada nuevo objeto le voy asignando un número. Una tablahash hace uso también de listas enlazadas de una o dos  que subdividen en otros nuevos grupos. Por ejemplo en el caso de  listas si tenemos más nombre con  la misma letra, luego mediante una nueva lista(sublista) los subdivide en nuevos grupos por ejemplo masculino y femenimo , por lo que la búsqueda se acorta. Haciendo un ejemplo, si se desea encontrar a una persona que se llame Isabel iré al número asiganado para las &#8216;I&#8217; y luego tardaré el tiempo que esté en la lista enlazada <strong>n/2</strong> que como será grupos de 1 0 2 listas no se tendrá en cuenta -&gt;constante.  No útil para agendas de teléfono móvil.</p>
<p>Ya en desarrolo de la práctica:</p>
<p><strong>Ejercicio 2 :</strong></p>
<p>Está parte hay que entender RECURSIVIDAD , que son métodos que se llaman a sí mismo hasta terminar. No era complicado excepto la parte de fibonacci que nos costó un poco más; pero con ayuda de  compañeros nos aclararon las dudas. <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Realmente es complicado de explicarlo pero si hacemos uso de un ejemplo se facilita:</p>
<p>Empezamos pasando como parámetro el 10 como la fórmula de fibonacci nos dice que es  fibonacci(n-1) + fibonacci(n-2), lo que se trata es de llamar dos veces al mismo método en la primera llamada tendré fibonacci (9)+fibonacci( 8 ) y estas a su vez vuelven a llamar a su fibonnacci respectivo es decir que fibonacci (9) llama a fibonacci ( 8  )+fibonacci( 7 ) y así voy creeando un arból hasta llegar a 1,  luego debo sumar todos los resultados. Esperamos que la explicación haya sido un poco clara :S</p>
<p><strong>Ejercicio 1 :</strong></p>
<p>Buscamos en el api TableHas y encontramos dos métodos que nos facilitan el trabajo. Put y get</p>
<p><a href="http://selestoca.wordpress.com/java/util/Hashtable.html#put(K, V)"><strong><span style="color:#ff00ff;font-family:Courier New;">put</span></strong></a><span style="color:#ff00ff;font-family:Courier New;">(</span><a title="type parameter in Hashtable" href="http://selestoca.wordpress.com/java/util/Hashtable.html"><span style="color:#ff00ff;font-family:Courier New;">K</span></a><span style="color:#ff00ff;font-family:Courier New;"> clave, </span><a title="type parameter in Hashtable" href="http://selestoca.wordpress.com/java/util/Hashtable.html"><span style="color:#ff00ff;font-family:Courier New;">V</span></a><span style="color:#ff00ff;font-family:Courier New;"> valor)</span>  en la práctica <span style="color:#ffff00;font-family:Courier New;">ht.put(</span><span style="font-family:Courier New;"><span style="color:#ffff00;">&#8220;</span><span style="color:#ffff00;">vidInf&#8221;<span style="font-family:Courier New;">, </span><span style="font-family:Courier New;">&#8220;Vidas infinitas&#8221;</span></span></span><span style="font-family:Courier New;">);<br />
</span></p>
<div><span style="font-family:Courier New;"><span style="font-family:Courier New;"><a href="http://selestoca.wordpress.com/java/util/Hashtable.html#get(java.lang.Object)"><span style="color:#ff00ff;"><strong>get</strong></span></a><span style="color:#ff00ff;"><strong>(</strong></span><a title="class in java.lang" href="http://selestoca.wordpress.com/java/lang/Object.html"><span style="color:#ff00ff;"><strong>Object</strong></span></a><strong><span style="color:#ff00ff;"> key)</span> que en la práctica nos devolverá el valor asignada para una clave, es decir si en el cmd insertamos </strong><span style="color:#00cb00;"><span style="color:#ffff00;"><strong>&#8220;vidInf&#8221;</strong></span> <strong><span style="color:#000000;">nos devolverá</span> <span style="color:#ffff00;">&#8220;Vidas infinitas&#8221;.</span></strong></span></span></span></div>
<div><span style="font-family:Courier New;"> </span></div>
<div><span style="font-family:Courier New;"> </span></div>
<p><span style="font-family:Courier New;"> </p>
<p></span></p>
<p> </p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/selestoca.wordpress.com/17/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/selestoca.wordpress.com/17/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/selestoca.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/selestoca.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/selestoca.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/selestoca.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/selestoca.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/selestoca.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/selestoca.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/selestoca.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/selestoca.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/selestoca.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/selestoca.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/selestoca.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/selestoca.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/selestoca.wordpress.com/17/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=selestoca.wordpress.com&amp;blog=2943795&amp;post=17&amp;subd=selestoca&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://selestoca.wordpress.com/2008/04/20/practica-8/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/dd092c353beedf780559e1027539a1b9?s=96&#38;d=identicon" medium="image">
			<media:title type="html">selestoca</media:title>
		</media:content>
	</item>
		<item>
		<title>Práctica 7</title>
		<link>http://selestoca.wordpress.com/2008/04/16/entornos-graficos/</link>
		<comments>http://selestoca.wordpress.com/2008/04/16/entornos-graficos/#comments</comments>
		<pubDate>Wed, 16 Apr 2008 08:58:58 +0000</pubDate>
		<dc:creator>selestoca</dc:creator>
				<category><![CDATA[Prácticas OCA]]></category>

		<guid isPermaLink="false">http://selestoca.wordpress.com/?p=16</guid>
		<description><![CDATA[Cola Dinámica Empezamos escuchando la explicación de Alberto, como siempre nos viene bien para saber lo que hay que realizar durante la práctica. Lugo buscamos en google sobre listas dinámicas&#8230;. no encontramos nada claro, entramos al Api y buscamos en Queue; pero nos explicó Alberto que java nos ofrece una cola dinámica &#8216;fácil de utilizar&#8217; [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=selestoca.wordpress.com&amp;blog=2943795&amp;post=16&amp;subd=selestoca&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Cola Dinámica</p>
<p>Empezamos escuchando la explicación  de Alberto, como siempre nos viene bien para saber lo que hay que realizar durante la práctica. Lugo buscamos en  google sobre listas dinámicas&#8230;.  no encontramos nada claro, entramos al Api y buscamos en Queue; pero nos explicó Alberto que java nos ofrece una cola dinámica &#8216;fácil de utilizar&#8217; ; pero el objetivo de está práctica era precisamente elaborar esa cola dinámica que java nos afrece, claro con nuestros propios métodos.Nos explicó que para realizar nuestra cola dinámica, no hace falta utilizar array, ni la cola anterior(que tenía un tamaño fijo) y está es adimenisional.</p>
<p>Como punto de partida, tomamos la cola de la práctica 6 y eliminamos el método de está lleno. ya que como sabemos en está nueva cola no hay tamaño, luego el array anterior &#8220;<span style="font-size:x-small;">Pieza elementos[ ]&#8220;</span> lo reeemplazamos por nuevos atributos de tipo Object y Nodo, ya que pensamos en la idea explicada en clase cuando teníamos Nodo y nodo siguiente.</p>
<p>El método dequeue (desencolar) y queue(encolar) los rellenamos, aunque no sabemos si están bien &#8230;.</p>
<p>Luego había que declarar la Clase Nodo; que tampoco supimos desarrollarla del todo&#8230;</p>
<p>En conclusión un poco desastre esta práctica esperamos tenerla clara más adelante, por que en estos días con el juego en marcha poco tiempo tenemos de continuar con ella.</p>
<p>Nos gustaría que se publique la solución de está praáctica, siempre y cuando sea factible&#8230;, por que estamos un poco perdidas con el tema&#8230;.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/selestoca.wordpress.com/16/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/selestoca.wordpress.com/16/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/selestoca.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/selestoca.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/selestoca.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/selestoca.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/selestoca.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/selestoca.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/selestoca.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/selestoca.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/selestoca.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/selestoca.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/selestoca.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/selestoca.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/selestoca.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/selestoca.wordpress.com/16/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=selestoca.wordpress.com&amp;blog=2943795&amp;post=16&amp;subd=selestoca&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://selestoca.wordpress.com/2008/04/16/entornos-graficos/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/dd092c353beedf780559e1027539a1b9?s=96&#38;d=identicon" medium="image">
			<media:title type="html">selestoca</media:title>
		</media:content>
	</item>
		<item>
		<title>Práctica 6</title>
		<link>http://selestoca.wordpress.com/2008/04/04/practica-6/</link>
		<comments>http://selestoca.wordpress.com/2008/04/04/practica-6/#comments</comments>
		<pubDate>Fri, 04 Apr 2008 08:44:05 +0000</pubDate>
		<dc:creator>selestoca</dc:creator>
				<category><![CDATA[Prácticas OCA]]></category>

		<guid isPermaLink="false">http://selestoca.wordpress.com/?p=11</guid>
		<description><![CDATA[Está práctica debía haberse realizado en la anterior sesión&#8230;.. mas vale tarde que nunca. El enunciado nos indica que hay aplicaciones para utilizar una cola, tema que habíamos discutido en clase, por que no encontramos uan explicación clara para ver el uso de una cola&#8230;con está práctica vemos que mediante una cola podemos acceder a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=selestoca.wordpress.com&amp;blog=2943795&amp;post=11&amp;subd=selestoca&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Está práctica debía haberse realizado en la anterior sesión&#8230;.. mas vale tarde que nunca.</p>
<p>El enunciado nos indica que hay aplicaciones para utilizar una cola, tema que habíamos discutido en clase, por que no encontramos uan explicación clara para ver el uso de una cola&#8230;con está práctica vemos que mediante una cola podemos acceder a las piezas que se necesita en el tetris.</p>
<p><strong>Ejercicio 1 y 2</strong></p>
<p>Primeramente hemos revisado en los apuntes de teoría como funciona la cola. Necesitamos los métodos vacia(), llena(), imprimir(), encolar() y desencolar().<br />
La unica diferencia con la Cola de teoria es que el array tiene que ser de tipo &#8220;Pieza&#8221; y no de &#8220;int&#8221; y en principio no habría que modificar más. Os adjuntamos el código:</p>
<p><a href="http://selestoca.files.wordpress.com/2008/04/cola1.jpg" title="Cola.java - Parte 1">Cola.java &#8211; Parte 1</a><br />
<a href="http://selestoca.files.wordpress.com/2008/04/cola2.jpg" title="Cola.java - Parte 2">Cola.java &#8211; Parte 2</a></p>
<p>Hemos creado la clase Pieza con 2 atributos:<br />
- char letra;<br />
- int posicion;<br />
Hemos creado un constructor que inicialice las 2 variables, y el método mover que nos actualiza la posición.</p>
<p>Hemos reutilizado el método toString para que nos devuelva el valor del char. Esto significa que en el método imprimir de la clase Cola se puede añadir opcionalmente. Lo pusimos porque sino imprime cosas raras&#8230; De todos modos os adjuntamos una imagen de nuestro código por si os viene bien.</p>
<p><a href="http://selestoca.files.wordpress.com/2008/04/pieza.jpg" title="Pieza.java">Pieza.java</a></p>
<p>Despues hemos creado otro método llamado PruebaCola que es el que contiene el main para comprobar que todo funciona correctamente.</p>
<p>Nosotras hemos hecho que la cola se inicialice con el tamaño de los parámetros que metamos por consola (args.length). Utilizamos los métodos de la clase Cola y vamos encolando las piezas siempre que esta este vacia (en nuestro caso entra todo lo que metamos). Nos dimos cuenta de que args es de tipo String y necesitamos un char a la hora de crear la pieza, por lo que hemos puesto args[i].charAt(0) (suponemos que hay alguna forma mejor de hacerlo&#8230;) y la posicion a 0 en todas, es decir, la inicial. Luego lo imprimimos para ver que funcionaba. Os adjuntamos el código tambien:</p>
<p><a href="http://selestoca.files.wordpress.com/2008/04/pruebacola.jpg" title="PruebaCola.java">PruebaCola.java</a></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/selestoca.wordpress.com/11/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/selestoca.wordpress.com/11/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/selestoca.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/selestoca.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/selestoca.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/selestoca.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/selestoca.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/selestoca.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/selestoca.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/selestoca.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/selestoca.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/selestoca.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/selestoca.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/selestoca.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/selestoca.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/selestoca.wordpress.com/11/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=selestoca.wordpress.com&amp;blog=2943795&amp;post=11&amp;subd=selestoca&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://selestoca.wordpress.com/2008/04/04/practica-6/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/dd092c353beedf780559e1027539a1b9?s=96&#38;d=identicon" medium="image">
			<media:title type="html">selestoca</media:title>
		</media:content>
	</item>
		<item>
		<title>Práctica 5</title>
		<link>http://selestoca.wordpress.com/2008/04/03/practica-5/</link>
		<comments>http://selestoca.wordpress.com/2008/04/03/practica-5/#comments</comments>
		<pubDate>Thu, 03 Apr 2008 21:39:50 +0000</pubDate>
		<dc:creator>selestoca</dc:creator>
				<category><![CDATA[Prácticas OCA]]></category>

		<guid isPermaLink="false">http://selestoca.wordpress.com/?p=10</guid>
		<description><![CDATA[Bueno, parece que ya empieza a complicarse un poco la situación, es aquí donde está el cambio entre rda y oca &#8220;entorno gráfico&#8221; En principio pensábamos que tendríamos una práctica sobre pilas y colas que es lo que se había visto en clase&#8230; pero no ha sido ásí !!! y creeemos que nos haría falta [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=selestoca.wordpress.com&amp;blog=2943795&amp;post=10&amp;subd=selestoca&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Bueno, parece que ya empieza a complicarse un poco la situación, es aquí donde está el cambio entre rda y oca &#8220;entorno gráfico&#8221;</p>
<p>En principio pensábamos que tendríamos una práctica sobre pilas y colas que es lo que se había visto en clase&#8230; pero no ha sido ásí !!! y creeemos que nos haría falta para entenderlo mejor y ya que en el examen suele caer alguna pregunta por ahí.</p>
<p>Como de costumbre se refuerza los conocimientos teóricos, explicándonos que es el polimofirmo, clases , métodos abstractos y las interfaces que pueden implementarse o extenderse.</p>
<p> <strong><em>Polimorfismo:</em></strong></p>
<p>No sabemos explicarlo muy bien, en las prácticas se dijo lo siguiente :</p>
<p>Existen dos tipos (clase y método) y no tienen que ver uno con el otro.</p>
<p><em>Clase.-</em> cuando un objeto puede comportarse como otro objeto de otra clase &#8220;tiene que ver con la herencia&#8221;.</p>
<p><em>Método</em>.- tiene que ver con los constructores, son métodos que tienen el mismo nombre pero distintos argumentos &#8220;sobrecarga de métodos&#8221; es por esa razón que java puede distinguir uno de otro. Podemos entender con el siguiente ejemplo:</p>
<address><font color="#ffff99">class Nombre (int argumento_uno , int argumento_dos );  </font></address>
<address><font color="#ffff99">class Nombre (String  argumento_tres );</font> </address>
<p><em><strong>Clases y métodos abstractos:</strong></em></p>
<p>Las clases y métodos abstractos se declaran añadiendo el modificador &#8220;abstract&#8221;. Los métodos de las clases abstractas no tienen porqué estar implementadas. Si otra clase hereda de una clase abstracta, esta debe implementar los métodos que se han declarado como abstractos. Si no se quieren implementar, la clase hija deberá declararse abstracta tambien.</p>
<p><em><strong>Interfaces:</strong></em></p>
<p>Puedo implementar tantas veces considere, lo contrario a la herencia que solo se puede heredar una vez. ( &#8220;class NombreClase extends NombrePadre implements nombreInterfaz1 &#8230;. implements nombreInterfazN&#8221; )<br />
Esto quiere decir que la <font color="#ff00ff">HERENCIA MÚLTIPLE NO EXISTE EN JAVA</font> y para solventar este &#8220;problema&#8221; se utilizan las interfaces.</p>
<p>Nos quiere decir que se implementan con el nombre &#8220;implements&#8221; o se extienden &#8220;extends&#8221;.</p>
<p>Cuando hacemos uso de las interfaces,  sus métodos son abstractos(no se implementan). En el caso de invocar a una interfaz&#8221;implements&#8221;, debemos implementar aquellos métodos que la interfaz ha mencionado y que en principio no se han &#8220;rellenado&#8221;, es decir:</p>
<p><font face="Courier"><font color="#ff9900"><b>interface</b> nombreDeLaInterfaz {<br />
    tipo_retorno nombreMetodosInterfaz();<br />
    }</font></font></p>
<p><font face="Courier"><font color="#ff9900"><b>class</b> nombreClase <b>implements</b> nombreInterfaz {<br />
    tipo_retorno nombreMetodosInterfaz(){<br />
      </font></font><font color="#ff9900" face="Courier">implemento el método<br />
      }<br />
    }</font></p>
<p>Vamos a tratar de <em>explicar </em>el ejercicio relacionado con awt, más que nada porque un compañero nos lo ha sugerido&#8230; y lo que más nos ha costado.</p>
<p><strong>Ejercicio 3.1</strong></p>
<p>Para hacer este ejercicio tuvimos que consultar obligatoriamente el API para ver que métodos teniamos que usar.</p>
<p>Vimos que para rellenar el rectangulo existe un método que se llama <strong><font color="#ffff00">fillRect(int posX,int posY,int ancho,int alto)</font></strong> y para dibujarlo <strong><font color="#ffff00">drawRect(int posX,int posY,int ancho,int alto)</font></strong>.</p>
<p>Y para establecer el color, <strong><font color="#ffff00">setColor(Color c)</font></strong>.</p>
<p>Pusimos los métodos como g.metodo(); y vimos que nos pintaba mal&#8230; y comiendonos un poco el coco, nos dimos cuenta de que primero pusimos el fillRect y luego el setColor, y el método paint va pintando en órden de que van apareciendo los métodos escritos en él. Esto significa que primero nos relleno el rectángulo y luego seleccionó el color (por lo que relleno por defecto el rectángulo de negro).<br />
La solución fue poner primero el color y luego rellenarlo (del revés&#8230;).<br />
Por la misma razón, hay que poner primero el relleno y luego el borde porque sino el borde quedaría por debajo del relleno y no se vería.</p>
<p><strong>Ejercicio 3.2</strong></p>
<p>Nosotras ya habiendo entendido el anterior (que nos costo&#8230;), la clase Boton y Menu era más de lo mismo&#8230; pero en el método paint hay que pintar el boton utilizando el paint de la clase padre:</p>
<p><strong>   <font color="#00ccff">super.paint(g);</font></strong></p>
<p>y para añadir el texto, tanto al botón como al menú, hay que utilizar el método <strong><font color="#ffff00">setText(String texto)</font></strong>.</p>
<p>Para añadir las opciones del menu nosotras hemos utilizado un for con una variable auxiliar, que vaya añadiendo las opciones del menu.</p>
<p><strong>Ejercicio 3.3</strong></p>
<p>Este es el último apartado que nos dio tiempo a realizar. No sabemos si exactamente lo hicimos bien porque no tenia ningun main y no pudimos comprobarlo&#8230; por lo menos al compilar no nos dio error.</p>
<p>Nosotras inicializamos el componente en el constructor con numComponentes:</p>
<p><strong><font color="#00ccff">componente = new ComponenteGrafico[numComponentes];</font></strong></p>
<p>En el método añade pusimos un for del tamaño del componente y fuimos añadiendo el componente c a cada posición del array.</p>
<p>Y por último, en el método paint volvimos a llamar al paint de la clase padre y añadimos un for para ir pintando los componentes.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/selestoca.wordpress.com/10/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/selestoca.wordpress.com/10/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/selestoca.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/selestoca.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/selestoca.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/selestoca.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/selestoca.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/selestoca.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/selestoca.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/selestoca.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/selestoca.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/selestoca.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/selestoca.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/selestoca.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/selestoca.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/selestoca.wordpress.com/10/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=selestoca.wordpress.com&amp;blog=2943795&amp;post=10&amp;subd=selestoca&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://selestoca.wordpress.com/2008/04/03/practica-5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/dd092c353beedf780559e1027539a1b9?s=96&#38;d=identicon" medium="image">
			<media:title type="html">selestoca</media:title>
		</media:content>
	</item>
		<item>
		<title>Práctica 4</title>
		<link>http://selestoca.wordpress.com/2008/03/14/practica-4/</link>
		<comments>http://selestoca.wordpress.com/2008/03/14/practica-4/#comments</comments>
		<pubDate>Fri, 14 Mar 2008 10:43:36 +0000</pubDate>
		<dc:creator>selestoca</dc:creator>
				<category><![CDATA[Prácticas OCA]]></category>

		<guid isPermaLink="false">http://selestoca.wordpress.com/?p=9</guid>
		<description><![CDATA[Bueno, en principio para muchos de nosotros (los repetidores&#8230;) la herencia nos parece fácil&#8230;&#8221;el hijo tiene todos los atributos del padre&#8221;,ya que tenemos la ventaja de haberlo estudiado en RDA; pero en algunas aplicaciones hay un poco más de tela&#8230;.. Ejercicio 1 Suponemos que no hay mucho que contar en este apartado, ya que es implementar el [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=selestoca.wordpress.com&amp;blog=2943795&amp;post=9&amp;subd=selestoca&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Bueno, en principio para muchos de nosotros (los repetidores&#8230;) la herencia nos parece fácil&#8230;&#8221;el hijo tiene todos los atributos del padre&#8221;,ya que tenemos la ventaja de haberlo estudiado en RDA; pero en algunas aplicaciones hay un poco más de tela&#8230;..</p>
<p><strong>Ejercicio 1</strong></p>
<p>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).</p>
<p><font color="#ff6600">- </font><em><font color="#ff6600">¿Qué pasaría si se cambiara protected por private en nuestra jerarquía de clases?<br />
</font></em>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.</p>
<p><strong>Ejercicio 2</strong></p>
<p>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 <em>super</em>, y a los parámetros propios de la clase, llamarlos normalmente(this.).</p>
<p><strong>Ejercicio 3</strong></p>
<p>Para los que estuvieron en el grupo de Alberto Cortes, nos explicaron para que servía StringBuffer().</p>
<p><font color="#ffcc00">StringBuffer ret=new StringBuffer();<br />
            ret.append(&#8221; TIPO = &#8220;+ tipo);<br />
        return ret.toString();</font></p>
<p>Todo este código puede ser reemplazado por:</p>
<p><font color="#ffcc00">return &#8220;TIPO = &#8220;+tipo;</font></p>
<p>como lo hemos hecho en los apartados anteriores.<br />
<em><br />
<font color="#ff6600">- ¿Para que sirve entonces StringBuffer?<br />
</font></em>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&#8230; por lo que al compilar, la máquina tarda más.<br />
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&#8230; por lo que la máquina tarda menos en compilar y no crea Strings adicionales.</p>
<p>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:</p>
<p align="left"><font color="#ffcc00">public String toString() {       <br />
         StringBuffer ret = new StringBuffer();<br />
         ret.append(&#8220;Nombre: &#8220;+nombre+&#8221;, Modificador: &#8220;+Modificador.toString(modificadores)+&#8221;Tipo Retorno&#8221;+tipoRetorno);<br />
         if (parametros != null)<br />
            for(int i =0;i&lt;parametros.length;i++)     <br />
               ret.append(&#8220;Parametro &#8220;+i+ &#8220;: &#8220;+parametros[i]);<br />
         return ret.toString();<br />
      }</font></p>
<p><strong>Ejercicio 4</strong> </p>
<p>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 &#8220;&#8221; en el espacio que corresponde a tipoRetorno de la clase Metodo.</p>
<p>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.</p>
<p>Se haría como la clase Metodo pero sin tipoRetorno.</p>
<p><strong>Ejercicio 5</strong></p>
<p>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)</p>
<p>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.</p>
<p>Nos encontramos con cosas &#8220;extrañas&#8221; como esta: o.getClass().getName() ; (que quiere decir, que el objeto &#8220;o&#8221;, el nombre (get.Name()) de la clase donde nos encontramos(getClass())&#8230; y asi todos&#8230; que nos ha llevado su tiempo descifrarlo&#8230;), aún así no podemos decir mucho porque no estamos muy seguras&#8230;</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/selestoca.wordpress.com/9/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/selestoca.wordpress.com/9/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/selestoca.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/selestoca.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/selestoca.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/selestoca.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/selestoca.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/selestoca.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/selestoca.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/selestoca.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/selestoca.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/selestoca.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/selestoca.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/selestoca.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/selestoca.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/selestoca.wordpress.com/9/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=selestoca.wordpress.com&amp;blog=2943795&amp;post=9&amp;subd=selestoca&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://selestoca.wordpress.com/2008/03/14/practica-4/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/dd092c353beedf780559e1027539a1b9?s=96&#38;d=identicon" medium="image">
			<media:title type="html">selestoca</media:title>
		</media:content>
	</item>
		<item>
		<title>Práctica 3</title>
		<link>http://selestoca.wordpress.com/2008/03/07/practica-3/</link>
		<comments>http://selestoca.wordpress.com/2008/03/07/practica-3/#comments</comments>
		<pubDate>Fri, 07 Mar 2008 10:39:46 +0000</pubDate>
		<dc:creator>selestoca</dc:creator>
				<category><![CDATA[Prácticas OCA]]></category>

		<guid isPermaLink="false">http://selestoca.wordpress.com/?p=8</guid>
		<description><![CDATA[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 &#8220;PRÁCTICA&#8221; 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 [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=selestoca.wordpress.com&amp;blog=2943795&amp;post=8&amp;subd=selestoca&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>    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 &#8220;PRÁCTICA&#8221;   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.</p>
<p>Por lo tanto, solo nos ha dado tiempo ha realizar hasta el ejercicio 2.</p>
<p><b> Ejercicio 0</b></p>
<p>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.</p>
<p>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.</p>
<p>Una breve explicación para acceder a estos es la siguiente:</p>
<p>-&gt; Si el atributo es <b>privado</b>, solo se puede acceder a él mediante sus métodos de acceso (get y set).<br />
Ejemplos: p1.getX(); //devuelve el valor<br />
p1.setX(x); //pone un valor</p>
<p>-&gt; Si el atributo es <b>publico</b>, se puede acceder a él con el operador &#8220;<b>.</b>&#8221; y seguido el atributo.<br />
Ejemplo: p1.x=3;</p>
<p>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.</p>
<p><b>Ejercicio 1</b></p>
<p>Este ejercicio es para familiarizarse con java.lang.reflect.Modifier. Hay que comprenderlo bien ya que hay que usarlo para los demás ejercicios.<br />
Nosotras pensamos que funciona asi:</p>
<p>-&gt; Los atributos tienen un valor fijo (static final) que no se podrá modificar en todo el programa.<br />
-&gt; Modifier.toString(valor), que ya esta implementado, nos devuelve el nombre del atributo, según el valor que le dimos al inicializarlo.</p>
<p><b>Ejercicio 2</b></p>
<p>En este ejercicio, hay que rellenar el constructor (el de toda la vida, utilizando el this) y rellenar el método sustituyendo el &#8220;null&#8221; 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.</p>
<p>-&gt; Modificador.toString(modificadores)</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/selestoca.wordpress.com/8/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/selestoca.wordpress.com/8/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/selestoca.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/selestoca.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/selestoca.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/selestoca.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/selestoca.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/selestoca.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/selestoca.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/selestoca.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/selestoca.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/selestoca.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/selestoca.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/selestoca.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/selestoca.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/selestoca.wordpress.com/8/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=selestoca.wordpress.com&amp;blog=2943795&amp;post=8&amp;subd=selestoca&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://selestoca.wordpress.com/2008/03/07/practica-3/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/dd092c353beedf780559e1027539a1b9?s=96&#38;d=identicon" medium="image">
			<media:title type="html">selestoca</media:title>
		</media:content>
	</item>
	</channel>
</rss>
