<?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"
	>

<channel>
	<title>Programacion en JAVA</title>
	<atom:link href="http://www.programacionenjava.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.programacionenjava.com</link>
	<description></description>
	<pubDate>Thu, 11 Dec 2008 09:42:07 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5</generator>
	<language>en</language>
			<item>
		<title>Apache Jackrabbit 1.5</title>
		<link>http://www.programacionenjava.com/blog/2008/12/11/noticias/apache-jackrabbit-15/</link>
		<comments>http://www.programacionenjava.com/blog/2008/12/11/noticias/apache-jackrabbit-15/#comments</comments>
		<pubDate>Thu, 11 Dec 2008 09:42:07 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Noticias]]></category>

		<guid isPermaLink="false">http://www.programacionenjava.com/?p=52</guid>
		<description><![CDATA[Apache Jackrabbit es un servidor para gestión de documentos que implementa JCR: Java Content Repository (JSR 170) y además lo extiende para añadir funcionalidades necesarias para administrar contenidos. Este proyecto inició en 2002 y el equipo de desarrollo ha seguido mejorándolo.
Entre los cambios más importantes de esta nueva versión, según lo comentó Jukka Zitting uno [...]]]></description>
			<content:encoded><![CDATA[<p>Apache Jackrabbit es un servidor para gestión de documentos que implementa JCR: Java Content Repository (JSR 170) y además lo extiende para añadir funcionalidades necesarias para administrar contenidos. Este proyecto inició en 2002 y el equipo de desarrollo ha seguido mejorándolo.</p>
<p>Entre los cambios más importantes de esta nueva versión, según lo comentó Jukka Zitting uno de los desarrolladores en su blog, están:</p>
<ul>
<li>El componente standalone del servidor Jackrabbit. Un simple jar que permite levantar un servidor Jackrabbit con WebDav de forma muy sencilla (tan simple como ejecutar un java -jar).</li>
<li>Mejoras al desempeño de los queries con XPath.</li>
<li>Soporte para queries con sintaxis GQL o Google Query Language. Este lenguaje se usa en AppEngine para crear quieres contra BigTable, ahora Jackrabbit lo soporta y lo traduce a expresiones XPath.</li>
<li>Se ha mejorado el soporte a transacciones.</li>
<li>Creación de workspace clusterizados. Los workspaces creados en un nodo, se replican automáticamente en todos los nodos del clúster.</li>
<li>Se han incorporado nuevas características de JCR 2.0, el JSR-283. Una especificación aún no terminada pero que ya se está soportando paulatinamente en esta herramienta.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.programacionenjava.com/blog/2008/12/11/noticias/apache-jackrabbit-15/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Ordenación de ficheros en un directorio</title>
		<link>http://www.programacionenjava.com/blog/2008/11/20/javabasico/ordenacion-de-ficheros-en-un-directorio/</link>
		<comments>http://www.programacionenjava.com/blog/2008/11/20/javabasico/ordenacion-de-ficheros-en-un-directorio/#comments</comments>
		<pubDate>Thu, 20 Nov 2008 11:32:18 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Java Básico]]></category>

		<guid isPermaLink="false">http://www.programacionenjava.com/?p=50</guid>
		<description><![CDATA[Los métodos list y listFiles, aplicables a un objeto de tipo File, no aseguran el orden en el que se devuelven los contenidos de un directorio.
Si se desea que el listado de ficheros tenga un orden determinado, es necesario realizar una ordenación posteriormente.
A continuación presentamos dos tipos de ordenación. La primera devuelve los resultados en [...]]]></description>
			<content:encoded><![CDATA[<p>Los métodos <strong>list y listFiles</strong>, aplicables a un objeto de tipo File, <strong>no aseguran el orden</strong> en el que se devuelven los contenidos de un directorio.</p>
<p>Si se desea que el listado de ficheros tenga un orden determinado, es necesario realizar una ordenación posteriormente.</p>
<p>A continuación presentamos dos tipos de ordenación. La primera devuelve los resultados en orden por fecha de modificación. La segunda es un tanto especial, ya que devuelve siempre en primer lugar, si existe, un fichero del que se conoce previamente el nombre, y el resto de resultados los ordena alfabéticamente.</p>

<div class="wp_codebox"><table width="100%" ><tr><td colspan="2" class="msgheader"><div class="codebox_right"><a href="###" onclick="copycode($('50code3'));">[Copiar]</a><a href="###" onclick="toggle_collapse('503');">[<span id="503_symbol">-</span>]</a></div><div class="codebox_left"><span id="l50code3"><a href="#" onclick="javascript:showCodeTxt('50code3'); return false;"> Codigo</a></span></div></td></tr><tr id="503"><td class="code" id="50code3"><pre class="java"><span style="color: #aaaadd; font-weight: bold;">File</span><span style="color: #66cc66;">&#91;</span><span style="color: #66cc66;">&#93;</span> filesPorFecha = directory.<span style="color: #006600;">listFiles</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
<span style="color: #aaaadd; font-weight: bold;">Arrays</span>.<span style="color: #006600;">sort</span><span style="color: #66cc66;">&#40;</span>filesPorFecha, <span style="color: #000000; font-weight: bold;">new</span> Comparator&lt;File&gt;<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #993333;">int</span> compare<span style="color: #66cc66;">&#40;</span><span style="color: #aaaadd; font-weight: bold;">File</span> f1, <span style="color: #aaaadd; font-weight: bold;">File</span> f2<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #aaaadd; font-weight: bold;">Long</span>.<span style="color: #006600;">valueOf</span><span style="color: #66cc66;">&#40;</span>f1.<span style="color: #006600;">lastModified</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">compareTo</span><span style="color: #66cc66;">&#40;</span>f2.<span style="color: #006600;">lastModified</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span> <span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span>;</pre></td></tr></table></div>


<div class="wp_codebox"><table width="100%" ><tr><td colspan="2" class="msgheader"><div class="codebox_right"><a href="###" onclick="copycode($('50code4'));">[Copiar]</a><a href="###" onclick="toggle_collapse('504');">[<span id="504_symbol">-</span>]</a></div><div class="codebox_left"><span id="l50code4"><a href="#" onclick="javascript:showCodeTxt('50code4'); return false;"> Codigo</a></span></div></td></tr><tr id="504"><td class="code" id="50code4"><pre class="java"><span style="color: #aaaadd; font-weight: bold;">String</span><span style="color: #66cc66;">&#91;</span><span style="color: #66cc66;">&#93;</span> filesPorNombre = directory.<span style="color: #006600;">list</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
<span style="color: #aaaadd; font-weight: bold;">Arrays</span>.<span style="color: #006600;">sort</span><span style="color: #66cc66;">&#40;</span>filesPorNombre, <span style="color: #000000; font-weight: bold;">new</span> Comparator&lt;String&gt;<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
         <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #993333;">int</span> compare<span style="color: #66cc66;">&#40;</span><span style="color: #aaaadd; font-weight: bold;">String</span> f1, <span style="color: #aaaadd; font-weight: bold;">String</span> f2<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
		<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span>!f1.<span style="color: #006600;">equals</span><span style="color: #66cc66;">&#40;</span>f2<span style="color: #66cc66;">&#41;</span> &amp;&amp; f1.<span style="color: #006600;">equals</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;nombredelfichero&quot;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
			<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #cc66cc;">-1</span>;
		<span style="color: #66cc66;">&#125;</span><span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span>!f1.<span style="color: #006600;">equals</span><span style="color: #66cc66;">&#40;</span>f2<span style="color: #66cc66;">&#41;</span> &amp;&amp; f2.<span style="color: #006600;">equals</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;nombredelfichero&quot;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
			<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #cc66cc;">1</span>;
		<span style="color: #66cc66;">&#125;</span><span style="color: #b1b100;">else</span><span style="color: #66cc66;">&#123;</span>
			<span style="color: #000000; font-weight: bold;">return</span> f1.<span style="color: #006600;">compareTo</span><span style="color: #66cc66;">&#40;</span>f2<span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
         <span style="color: #66cc66;">&#125;</span>
 <span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span>;</pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://www.programacionenjava.com/blog/2008/11/20/javabasico/ordenacion-de-ficheros-en-un-directorio/feed/</wfw:commentRss>
		</item>
		<item>
		<title>JBoss escoge Magnolia para su sitio Web comunitario</title>
		<link>http://www.programacionenjava.com/blog/2008/10/24/noticias/jboss-escoge-magnolia-para-su-sitio-web-comunitario/</link>
		<comments>http://www.programacionenjava.com/blog/2008/10/24/noticias/jboss-escoge-magnolia-para-su-sitio-web-comunitario/#comments</comments>
		<pubDate>Fri, 24 Oct 2008 13:36:01 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Noticias]]></category>

		<guid isPermaLink="false">http://www.programacionenjava.com/?p=49</guid>
		<description><![CDATA[Magnolia ha sido escogido como la solución Java opensource CMS (ECM) para albergar los sitios comunitarios de JBoss. Con más de 40 proyectos opensource que mantener, JBoss ha confiado a Magnolia una parte importante y clave del desarrollo de dichos sitios.
JBoss utilizaba anteriormente su propio CMS, y se volvía difícil poder seguir dandole el soporte [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Magnolia</strong> ha sido escogido como la solución <strong>Java opensource CMS (ECM)</strong> para albergar los sitios comunitarios de <strong>JBoss</strong>. Con más de 40 proyectos opensource que mantener, JBoss ha confiado a Magnolia una parte importante y clave del desarrollo de dichos sitios.</p>
<p>JBoss utilizaba anteriormente su propio CMS, y se volvía difícil poder seguir dandole el soporte a los sitios comunitarios por lo cual decidieron abandonar su propio CMS y adoptar Magnolia como solución.</p>
<p>El líder de JBoss <strong>Mark Newton</strong> ha explicado que &#8220;es importante que nuestros grupos de proyectos no sean restringidos por el CMS utilizado y que tengan la libertad de ejercer sus propias individualidades y controlar sus propias páginas web&#8221;.</p>
<p>&#8220;Al mismo tiempo queremos una solución fácil de utilizar y fácil de extender. Magnolia es la solución perfecta. Cada proyecto tiene control completo sobre la apariencia de su sitio y pueden incluso escoger su propio nombre de dominio dentro de jboss.org si quieren mantener su propia identidad. Darles la posibilidad de expresar esas individualidades pero tener todo corriendo en un mismo sistema es critico para nuestros requerimientos&#8221; expresó Mark Newton.</p>
<p>Magnolia International Ltd. es el creador de Magnolia y provee el soporte, implementación, servicios, consulting y formaciones para sus clientes empresariales.  Pueden encontrar mas información al respecto en el sitio sde magnolia: <a href="http://www.magnolia-cms.com/home.html">http://www.magnolia-cms.com/home.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.programacionenjava.com/blog/2008/10/24/noticias/jboss-escoge-magnolia-para-su-sitio-web-comunitario/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Java 6, Update 10</title>
		<link>http://www.programacionenjava.com/blog/2008/10/23/noticias/java-6-update-10/</link>
		<comments>http://www.programacionenjava.com/blog/2008/10/23/noticias/java-6-update-10/#comments</comments>
		<pubDate>Thu, 23 Oct 2008 14:57:48 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Noticias]]></category>

		<guid isPermaLink="false">http://www.programacionenjava.com/?p=48</guid>
		<description><![CDATA[El día 22 de octubre, tras unos meses en estado beta, Sun publicó la versión estable de Java 6 Update 10.
La anterior update era la 7, y el salto en numeración se justifica por los novedosos cambios introducidos.
Asi pues,  como podemos ver en las notas de lanzamiento, incluye:

JRE Kernel, instalación del JRE con lo mínimo.
Nueva [...]]]></description>
			<content:encoded><![CDATA[<p>El día 22 de octubre, tras unos meses en estado beta, <strong>Sun publicó la versión estable de Java 6 Update 10</strong>.</p>
<p>La anterior update era la 7, y el salto en numeración se justifica por los novedosos cambios introducidos.</p>
<p>Asi pues,  como podemos ver en las notas de lanzamiento, incluye:</p>
<ul>
<li>JRE Kernel, instalación del JRE con lo mínimo.</li>
<li>Nueva versión del plug-in de Java para navegadores, que promete integrar los Applets, JNLP y JavaFX.</li>
<li>Uso de la acelaración gráfica mediante Direct3D en Windows.</li>
<li>Inicio rápido con Java Quick Starter.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.programacionenjava.com/blog/2008/10/23/noticias/java-6-update-10/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Como recorrer un Map</title>
		<link>http://www.programacionenjava.com/blog/2008/10/10/javabasico/como-recorrer-un-map/</link>
		<comments>http://www.programacionenjava.com/blog/2008/10/10/javabasico/como-recorrer-un-map/#comments</comments>
		<pubDate>Fri, 10 Oct 2008 09:59:32 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Java Básico]]></category>

		<guid isPermaLink="false">http://www.programacionenjava.com/?p=47</guid>
		<description><![CDATA[El siguiente extracto de código recorre todas las claves y valores de un Map. En primer lugar se construye y rellena el Map para posteriormente sacar por la salida estándar todas las claves y valores del mismo.

[Copiar][-] Codigo	HashMap &#60;String,String&#62; map = new HashMap&#40;&#41;;
	map.put&#40;&#34;clave1&#34;,&#34;valor1&#34;&#41;;
	map.put&#40;&#34;clave2&#34;,&#34;valor2&#34;&#41;;
	Iterator itr = map.entrySet&#40;&#41;.iterator&#40;&#41;;
	while &#40;itr.hasNext&#40;&#41;&#41; &#123;
		Map.Entry e = &#40;Map.Entry&#41;itr.next&#40;&#41;;
		System.out.println&#40;&#34;clave: &#34;+e.getKey&#40;&#41;+&#34;valor:&#34;+e.getValue&#40;&#41;&#41;;
	&#125;

]]></description>
			<content:encoded><![CDATA[<p>El siguiente extracto de código recorre todas las claves y valores de un Map. En primer lugar se construye y rellena el Map para posteriormente sacar por la salida estándar todas las claves y valores del mismo.</p>

<div class="wp_codebox"><table width="100%" ><tr><td colspan="2" class="msgheader"><div class="codebox_right"><a href="###" onclick="copycode($('47code6'));">[Copiar]</a><a href="###" onclick="toggle_collapse('476');">[<span id="476_symbol">-</span>]</a></div><div class="codebox_left"><span id="l47code6"><a href="#" onclick="javascript:showCodeTxt('47code6'); return false;"> Codigo</a></span></div></td></tr><tr id="476"><td class="code" id="47code6"><pre class="java">	<span style="color: #aaaadd; font-weight: bold;">HashMap</span> &lt;String,String&gt; map = <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #aaaadd; font-weight: bold;">HashMap</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
	map.<span style="color: #006600;">put</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;clave1&quot;</span>,<span style="color: #ff0000;">&quot;valor1&quot;</span><span style="color: #66cc66;">&#41;</span>;
	map.<span style="color: #006600;">put</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;clave2&quot;</span>,<span style="color: #ff0000;">&quot;valor2&quot;</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #aaaadd; font-weight: bold;">Iterator</span> itr = map.<span style="color: #006600;">entrySet</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">iterator</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #b1b100;">while</span> <span style="color: #66cc66;">&#40;</span>itr.<span style="color: #006600;">hasNext</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
		<span style="color: #aaaadd; font-weight: bold;">Map</span>.<span style="color: #006600;">Entry</span> e = <span style="color: #66cc66;">&#40;</span><span style="color: #aaaadd; font-weight: bold;">Map</span>.<span style="color: #006600;">Entry</span><span style="color: #66cc66;">&#41;</span>itr.<span style="color: #006600;">next</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #aaaadd; font-weight: bold;">System</span>.<span style="color: #006600;">out</span>.<span style="color: #006600;">println</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;clave: &quot;</span>+e.<span style="color: #006600;">getKey</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>+<span style="color: #ff0000;">&quot;valor:&quot;</span>+e.<span style="color: #006600;">getValue</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #66cc66;">&#125;</span></pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://www.programacionenjava.com/blog/2008/10/10/javabasico/como-recorrer-un-map/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Maxine, una máquina virtual java implementada en Java</title>
		<link>http://www.programacionenjava.com/blog/2008/09/17/noticias/maxine-una-maquina-virtual-java-implementada-en-java/</link>
		<comments>http://www.programacionenjava.com/blog/2008/09/17/noticias/maxine-una-maquina-virtual-java-implementada-en-java/#comments</comments>
		<pubDate>Wed, 17 Sep 2008 14:00:32 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Noticias]]></category>

		<guid isPermaLink="false">http://www.programacionenjava.com/?p=46</guid>
		<description><![CDATA[Maxine es una máquina virtual Java desarrollada como un proyecto de investigación dentro de Sun Microsystems y distribuida bajo licencia GPL 2.0. La novedad es que la inmensa mayoría de la máquina virtual (menos una mínima parte para arrancar que está escrita en ensamblador y C) está escrita en Java.
Se trata de un proyecto de [...]]]></description>
			<content:encoded><![CDATA[<p><a title="Maxine" href="http://maxine.dev.java.net" target="_blank">Maxine</a> es una máquina virtual Java desarrollada como un proyecto de investigación dentro de Sun Microsystems y distribuida bajo licencia GPL 2.0. La novedad es que la inmensa mayoría de la máquina virtual (menos una mínima parte para arrancar que está escrita en ensamblador y C) está escrita en Java.</p>
<p>Se trata de un <strong>proyecto de investigación</strong> y su principal aplicación actual es el uso en docencia: este código es mucho más fácil de entender y manipular que el código de la máquina Hot Spot. Y el hecho de poder usar una herramienta como NetBeans para trabajar con la máquina virtual también simplifica considerablemente el desarrollo.</p>
<p>La máquina virtual es aproximadamente cinco veces más lenta que Hot Spot y el proyecto se encuentra alojado en java.net.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.programacionenjava.com/blog/2008/09/17/noticias/maxine-una-maquina-virtual-java-implementada-en-java/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Google Web Toolkit 1.5 ya esta disponible</title>
		<link>http://www.programacionenjava.com/blog/2008/09/15/noticias/google-web-toolkit-15-ya-esta-disponible/</link>
		<comments>http://www.programacionenjava.com/blog/2008/09/15/noticias/google-web-toolkit-15-ya-esta-disponible/#comments</comments>
		<pubDate>Mon, 15 Sep 2008 15:54:41 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Noticias]]></category>

		<guid isPermaLink="false">http://www.programacionenjava.com/?p=45</guid>
		<description><![CDATA[Ya tenemos disponible la versión definitiva de GWT 1.5, entre otras tenemos las siguientes mejoras:

Soporte de Java 5.
Optimización del rendimiento.
Mejor aspecto por defecto de los widgets.
Soporte de ARIA para mejorar la accesibilidad.

Mas información en el blog oficial.
]]></description>
			<content:encoded><![CDATA[<p>Ya tenemos disponible la versión definitiva de GWT 1.5, entre otras tenemos las siguientes mejoras:</p>
<ul>
<li>Soporte de Java 5.</li>
<li>Optimización del rendimiento.</li>
<li>Mejor aspecto por defecto de los widgets.</li>
<li>Soporte de <a href="http://www.w3.org/WAI/intro/aria" target="_blank">ARIA</a> para mejorar la accesibilidad.</li>
</ul>
<p>Mas información en el <a href="http://googlewebtoolkit.blogspot.com/2008/08/gwt-15-now-available.html" target="_blank">blog oficial</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.programacionenjava.com/blog/2008/09/15/noticias/google-web-toolkit-15-ya-esta-disponible/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Tutorial. Qué es un paquete</title>
		<link>http://www.programacionenjava.com/blog/2008/08/26/javabasico/tutorial-que-es-un-paquete/</link>
		<comments>http://www.programacionenjava.com/blog/2008/08/26/javabasico/tutorial-que-es-un-paquete/#comments</comments>
		<pubDate>Tue, 26 Aug 2008 17:42:50 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Java Básico]]></category>

		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://www.programacionenjava.com/?p=44</guid>
		<description><![CDATA[Un paquete es un espacio de nombres que organiza un conjunto de clases e interfaces relacionadas. Puede pensar en los paquetes como algo similar a las diferentes carpetas de su ordenador. Puede tener guardadas páginas HTML en una carpeta, imágenes en otra y scripts y aplicaciones en otra distinta. Puesto que un software escrito en [...]]]></description>
			<content:encoded><![CDATA[<p>Un <strong>paquete</strong> es un <strong>espacio de nombres</strong> que <strong>organiza un conjunto de clases e interfaces relacionadas</strong>. Puede pensar en los paquetes como algo similar a las diferentes carpetas de su ordenador. Puede tener guardadas páginas HTML en una carpeta, imágenes en otra y scripts y aplicaciones en otra distinta. Puesto que un software escrito en el lenguaje de programación Java puede llegar a consistir de cientos o miles de clases individuales, tiene sentido que se organicen las clases e interfaces relacionadas en paquetes.</p>
<p>La plataforma Java proporciona una enorme biblioteca de clases (un conjunto de paquetes) adecuado para usar en sus propias aplicaciones. A esta biblioteca se la conoce como la <strong>Interfaz de Programación de Aplicaciones</strong> (<em>Application Programming Interface</em> en inglés) o por su abreviatura <strong><em>API</em></strong>. Sus paquetes representan las tareas más comunes asociadas a la programación en general. Por ejemplo, un objeto String contiene estado y comportamiento para cadenas de caracteres («character strings»); un objeto File permite a un programador crear, eliminar, inspeccionar, comparar o modificar un archivo en un sistema de archivos; un objeto Socket permite la creación y uso de sockets de red; otros objetos de interfaz gráfica («GUI») controlan botones, cajas de selección y cualquier otra cosa relacionada con las interfaces gráficas de usuario. Literalmente hay miles de clases de las que elegir. Esto le permite al programador enfocar sus esfuerzos en el diseño de la aplicación, más que en la infraestructura requerida para hacerla funcionar.</p>
<p>La <a title="API Java" href="http://java.sun.com/javase/6/docs/api/index.html" target="_blank">Java Platform API Specification</a> contiene el listado completo de todos los paquetes, interfaces, clases, campos y métodos proporcionados por la Plataforma Java 6, edición estándar (<em>Java Platform 6, Standard Edition</em>). Cargue esta página en su navegador y añádala a sus marcadores o favoritos. Siendo programador se convertirá en su documentación de referencia más importante.</p>
<p> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.programacionenjava.com/blog/2008/08/26/javabasico/tutorial-que-es-un-paquete/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Tutorial. Qué es un interfaz</title>
		<link>http://www.programacionenjava.com/blog/2008/08/25/javabasico/tutorial-que-es-un-interfaz/</link>
		<comments>http://www.programacionenjava.com/blog/2008/08/25/javabasico/tutorial-que-es-un-interfaz/#comments</comments>
		<pubDate>Mon, 25 Aug 2008 13:31:53 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Java Básico]]></category>

		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://www.programacionenjava.com/?p=43</guid>
		<description><![CDATA[Como ya ha aprendido, los objetos definen su interacción con el mundo exterior a través de los métodos de que exponen. Los métodos forman la interfaz del objeto con el mundo exterior; por ejemplo, los botones que hay en la parte frontal de su televisor forman la interfaz entre usted y el cableado eléctrico al [...]]]></description>
			<content:encoded><![CDATA[<p>Como ya ha aprendido, los objetos definen su interacción con el mundo exterior a través de los métodos de que exponen. Los métodos forman la interfaz del objeto con el mundo exterior; por ejemplo, los botones que hay en la parte frontal de su televisor forman la interfaz entre usted y el cableado eléctrico al otro lado de la caja de plástico. Debe pulsar un botón para encender y apagar el televisor.<br />
En su forma más común, una <strong><em>interfaz</em></strong> es un grupo de métodos relacionados con cuerpos vacíos. El comportamiento de una bicicleta, si se especifica como una interfaz, podría aparecer así:</p>

<div class="wp_codebox"><table width="100%" ><tr><td colspan="2" class="msgheader"><div class="codebox_right"><a href="###" onclick="copycode($('43code9'));">[Copiar]</a><a href="###" onclick="toggle_collapse('439');">[<span id="439_symbol">-</span>]</a></div><div class="codebox_left"><span id="l43code9"><a href="#" onclick="javascript:showCodeTxt('43code9'); return false;"> Codigo</a></span></div></td></tr><tr id="439"><td class="code" id="43code9"><pre class="java"><span style="color: #000000; font-weight: bold;">interface</span> Bicycle <span style="color: #66cc66;">&#123;</span>
&nbsp;
       <span style="color: #993333;">void</span> changeCadence<span style="color: #66cc66;">&#40;</span><span style="color: #993333;">int</span> newValue<span style="color: #66cc66;">&#41;</span>;
&nbsp;
       <span style="color: #993333;">void</span> changeGear<span style="color: #66cc66;">&#40;</span><span style="color: #993333;">int</span> newValue<span style="color: #66cc66;">&#41;</span>;
&nbsp;
       <span style="color: #993333;">void</span> speedUp<span style="color: #66cc66;">&#40;</span><span style="color: #993333;">int</span> increment<span style="color: #66cc66;">&#41;</span>;
&nbsp;
       <span style="color: #993333;">void</span> applyBrakes<span style="color: #66cc66;">&#40;</span><span style="color: #993333;">int</span> decrement<span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span></pre></td></tr></table></div>

<p>Para implementar esta interfaz el nombre de su clase debería cambiar (a ACMEBicycle, por ejemplo), y usaría la palabra clave <strong><em>implements</em></strong> en la declaración de clase:</p>

<div class="wp_codebox"><table width="100%" ><tr><td colspan="2" class="msgheader"><div class="codebox_right"><a href="###" onclick="copycode($('43code10'));">[Copiar]</a><a href="###" onclick="toggle_collapse('4310');">[<span id="4310_symbol">-</span>]</a></div><div class="codebox_left"><span id="l43code10"><a href="#" onclick="javascript:showCodeTxt('43code10'); return false;"> Codigo</a></span></div></td></tr><tr id="4310"><td class="code" id="43code10"><pre class="java"><span style="color: #000000; font-weight: bold;">class</span> ACMEBicycle <span style="color: #000000; font-weight: bold;">implements</span> Bicycle <span style="color: #66cc66;">&#123;</span>
&nbsp;
   <span style="color: #808080; font-style: italic;">// remainder of this class implemented as before</span>
&nbsp;
<span style="color: #66cc66;">&#125;</span></pre></td></tr></table></div>

<p>Implementar una interfaz permite a una clase ser más formal acerca del comportamiento que promete proporcionar. Las interfaces forman un contrato entre la clase y el mundo exterior, y este contrato se hace cumplir en el momento de la compilación. Si su clase afirma implementar una interfaz, todos los métodos definidos por esa interfaz deben aparecer en su código fuente para que se compile con éxito.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.programacionenjava.com/blog/2008/08/25/javabasico/tutorial-que-es-un-interfaz/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Tutorial. Qué es la herencia</title>
		<link>http://www.programacionenjava.com/blog/2008/08/21/javabasico/tutorial-que-es-la-herencia/</link>
		<comments>http://www.programacionenjava.com/blog/2008/08/21/javabasico/tutorial-que-es-la-herencia/#comments</comments>
		<pubDate>Thu, 21 Aug 2008 13:53:20 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Java Básico]]></category>

		<category><![CDATA[Tutorial]]></category>

		<category><![CDATA[herencia]]></category>

		<guid isPermaLink="false">http://www.programacionenjava.com/?p=42</guid>
		<description><![CDATA[A menudo diferentes tipos de objetos tienen algunas cosas en común. Por ejemplo, las bicicletas de montaña, las de carretera y los tándems todos comparten las características de las bicicletas (velocidad actual, cadencia de pedal, marcha). Aún así cada una de ellas también define características adicionales que las hacen diferentes: los tándems tienen dos asientos [...]]]></description>
			<content:encoded><![CDATA[<p>A menudo diferentes tipos de objetos tienen algunas cosas en común. Por ejemplo, las bicicletas de montaña, las de carretera y los tándems todos comparten las características de las bicicletas (velocidad actual, cadencia de pedal, marcha). Aún así cada una de ellas también define características adicionales que las hacen diferentes: los tándems tienen dos asientos y dos manillares, las bicicletas de carretera tienen un manillar con cuernos, algunas bicicletas de montaña tienen más piñones que les proporcionan marchas más cortas.</p>
<p>La programación orientada a objetos permite que las clases <strong>hereden</strong> estados y comportamientos de uso común de otras clases. En este ejemplo, Bicycle se convierte en la <strong>superclase</strong> de MountainBike, RoadBike y TandemBike. En el lenguaje de programación Java se permite que cada clase tenga una superclase directa y que cada superclase tenga el potencial para una cantidad ilimitada de <strong>subclases</strong>.</p>
<p>La sintaxis para crear subclases en sencilla. Utilice la palabra clave <strong>extends</strong> seguida del nombre de la clase de la que desea heredar al inicio de su declaración de clase:</p>

<div class="wp_codebox"><table width="100%" ><tr><td colspan="2" class="msgheader"><div class="codebox_right"><a href="###" onclick="copycode($('42code12'));">[Copiar]</a><a href="###" onclick="toggle_collapse('4212');">[<span id="4212_symbol">-</span>]</a></div><div class="codebox_left"><span id="l42code12"><a href="#" onclick="javascript:showCodeTxt('42code12'); return false;"> Codigo</a></span></div></td></tr><tr id="4212"><td class="code" id="42code12"><pre class="java"><span style="color: #000000; font-weight: bold;">class</span> MountainBike <span style="color: #000000; font-weight: bold;">extends</span> Bicycle <span style="color: #66cc66;">&#123;</span>
&nbsp;
     <span style="color: #808080; font-style: italic;">// Los nuevos campos y métodos que definan una bici de montaña irían aquí</span>
&nbsp;
<span style="color: #66cc66;">&#125;</span></pre></td></tr></table></div>

<p>Esto proporciona a MountainBike los mismos campos y métodos que Bicycle, pero permite a su código encargarse exclusivamente de las características que la hacen única. Esto hace que el código de sus subclases sea fácil de leer. Sin embargo debe encargarse de documentar apropiadamente el estado y comportamiento que cada superclase que define, ya que ese código no aparecerá en el archivo fuente de cada subclase.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.programacionenjava.com/blog/2008/08/21/javabasico/tutorial-que-es-la-herencia/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
