<?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>Un día oí</title>
	<atom:link href="http://patricio33.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://patricio33.wordpress.com</link>
	<description>Blog de programación en Java, Android y bases de datos, principalmente Oracle 10g.</description>
	<lastBuildDate>Mon, 08 Mar 2010 19:51:20 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='patricio33.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Un día oí</title>
		<link>http://patricio33.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://patricio33.wordpress.com/osd.xml" title="Un día oí" />
	<atom:link rel='hub' href='http://patricio33.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Un día oí</title>
		<link>http://patricio33.wordpress.com/2010/03/08/un-dia-oi-6/</link>
		<comments>http://patricio33.wordpress.com/2010/03/08/un-dia-oi-6/#comments</comments>
		<pubDate>Mon, 08 Mar 2010 19:51:20 +0000</pubDate>
		<dc:creator>patricio33</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://patricio33.wordpress.com/?p=198</guid>
		<description><![CDATA[&#8230; a alguien decir &#8220;Si te caes siete veces, levántate ocho&#8221;<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=patricio33.wordpress.com&amp;blog=12284872&amp;post=198&amp;subd=patricio33&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>&#8230; a alguien decir &#8220;Si te caes siete veces, levántate ocho&#8221;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/patricio33.wordpress.com/198/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/patricio33.wordpress.com/198/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/patricio33.wordpress.com/198/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/patricio33.wordpress.com/198/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/patricio33.wordpress.com/198/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/patricio33.wordpress.com/198/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/patricio33.wordpress.com/198/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/patricio33.wordpress.com/198/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/patricio33.wordpress.com/198/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/patricio33.wordpress.com/198/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/patricio33.wordpress.com/198/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/patricio33.wordpress.com/198/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/patricio33.wordpress.com/198/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/patricio33.wordpress.com/198/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=patricio33.wordpress.com&amp;blog=12284872&amp;post=198&amp;subd=patricio33&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://patricio33.wordpress.com/2010/03/08/un-dia-oi-6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a8813ea378049a62c5bc325d37115c84?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">patricio33</media:title>
		</media:content>
	</item>
		<item>
		<title>Modificando tablas  mediante SQL (DDL).</title>
		<link>http://patricio33.wordpress.com/2010/03/08/modificando-tablas-mediante-sql-ddl/</link>
		<comments>http://patricio33.wordpress.com/2010/03/08/modificando-tablas-mediante-sql-ddl/#comments</comments>
		<pubDate>Mon, 08 Mar 2010 19:44:39 +0000</pubDate>
		<dc:creator>patricio33</dc:creator>
				<category><![CDATA[Bases de Datos]]></category>
		<category><![CDATA[Oracle 10g]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[DDL]]></category>
		<category><![CDATA[Modificar tablas]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[TABLA]]></category>

		<guid isPermaLink="false">http://patricio33.wordpress.com/?p=188</guid>
		<description><![CDATA[Como complemento al artículo donde explicábamos cómo crear tablas mediante DDL en SQL, en este artículos explicaremos cómo modificar las tablas que hayamos creado previamente en un espacio de trabajo. Para modificar una tabla en SQL, nos ayudamos del comando &#8230; <a href="http://patricio33.wordpress.com/2010/03/08/modificando-tablas-mediante-sql-ddl/">Sigue leyendo <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=patricio33.wordpress.com&amp;blog=12284872&amp;post=188&amp;subd=patricio33&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:justify;">Como complemento al artículo donde explicábamos <a title="Crear tablas SQL" href="http://patricio33.wordpress.com/2010/03/03/creacion-de-tablas-mediante-sql-ddl/" target="_self">cómo crear tablas mediante DDL en SQL</a>, en este artículos explicaremos cómo modificar las tablas que hayamos creado previamente en un espacio de trabajo.</p>
<p style="text-align:justify;">Para modificar una tabla en SQL, nos ayudamos del comando <span style="color:#ff0000;"><strong>ALTER TABLE</strong> . <span style="color:#000000;">El formato general será el siguiente:</span></span></p>
<p style="text-align:justify;"><span style="color:#ff0000;"><span style="color:#000000;"> </span></span></p>
<div id="_mcePaste" style="text-align:justify;"><strong>ALTER TABLE nombre_tabla <span style="font-weight:normal;">{acción_modificar_columna | acción_modificar_restricción_tabla};</span></strong></div>
<div style="text-align:justify;"><strong><span style="font-weight:normal;"><br />
</span></strong></div>
<p style="text-align:justify;">es decir , ALTER TABLE seguido del nombre de la tabla a modificar y a continuación acciones que irán enfocadas a modificar una columna, añadir y/o modificar restricciones o modificar una tabla.</p>
<p style="text-align:justify;">Las acciones destinadas a modificar columnas son las siguientes:</p>
<ul style="text-align:justify;">
<li>Añadir columnas : <span style="color:#ff0000;">ADD</span> (columna def_columnas [, columna2 def_columnas …] ).
<ul>
<li>Ejemplo: <strong>ALTER TABLE</strong> COCHE <span style="color:#ff0000;">ADD</span> (caballos NUMBER(3))</li>
</ul>
</li>
<li>Borrar columnas: <span style="color:#ff0000;">DROP</span> (columna [, columna2 def_columnas, …] )
<ul>
<li>Ejemplo: <strong>ALTER TABLE</strong> COCHE <span style="color:#ff0000;">DROP</span> (motor NUMBER(20))</li>
</ul>
</li>
<li>Modificar columnas: <span style="color:#ff0000;">MODIFY</span> (columna def_columnas [, columna2 def_columnas …] )
<ul>
<li>Ejemplo: <strong>ALTER TABLE</strong> COCHE <span style="color:#ff0000;">MODIFY</span> (motor NUMBER(20)) .</li>
<li>Lógicamente la columna ha de estar creada con anterioridad, las opciones que Oracle nos permite modificar son:
<ul>
<li>Incrementar la precisión o anchura de los tipos de datos</li>
<li>Sólo se puede reducir la anchura, si esa columna posee nulo en todos los registros, todos los valores son tan pequeños como la nueva anchura o no hay registros.</li>
</ul>
</li>
</ul>
</li>
<li>Renombrar columnas: <span style="color:#ff0000;">RENAME COLUMN</span> nombreAntiguo TO nombreNuevo .                                                                        Ejemplo:  <strong>ALTER TABLE</strong> COCHE <span style="color:#ff0000;">RENAME COLUMN</span> combustible TO tipoCombustible.</li>
</ul>
<p style="text-align:justify;">Las acciones enfocadas a modificar las restricciones son las siguientes:</p>
<ul style="text-align:justify;">
<li>Añadir restricciones: <span style="color:#ff0000;">ADD</span> [CONSTRAINT nombre] tipoDeRestricción(columnas)
<ul>
<li style="text-align:justify;">Ejemplo:  <strong>ALTER TABLE</strong> COCHE <span style="color:#ff0000;">ADD CONSTRAINT</span> COCHE_PK PRIMARY KEY (matricula). Añadiría a la tabla Coche la restricción de nombre COCHE_PK ,de tipo PRIMARY KEY referente a la columna matrícula.</li>
<li style="text-align:justify;">El tipo de Restricción puede ser:
<ul>
<li style="text-align:justify;">CHECK : Para restringir los valores de la columna a los que definamos nosotros.</li>
<li style="text-align:justify;">PRIMARY KEY: Para indicar que es clave primaria.</li>
<li style="text-align:justify;">FOREIGN KEY: Para indicar que es clave ajena.</li>
</ul>
</li>
</ul>
</li>
<li>Borrar restricciones:  <span style="color:#ff0000;">DROP <span style="color:#000000;">PRIMARY KEY</span></span> | UNIQUE (campos) | CONSTRAINT nombreRestricción. Es decir DROP seguido de PRIMARY KEY para borrar una clave primaria , UNIQUE con los campos que deseemos o CONSTRAINT y nombre de restricción para borrar una restricción en concreto.
<ul>
<li>Ejemplo: <strong>ALTER TABLE</strong> COCHE <span style="color:#ff0000;">DROP</span> PRIMARY KEY</li>
<li>Ejemplo: <strong>ALTER TABLE</strong> COCHE <span style="color:#ff0000;">D</span><span style="color:#ff0000;">ROP</span> CONSTRAINT COCHE_CHK</li>
</ul>
</li>
<li>Desactivar restricciones: <span style="color:#ff0000;">DISABLE CONSTRAINT</span> nombre Para desactivar restricciones previamente creadas.
<ul>
<li>Ejemplo: <strong>ALTER TABLE</strong> COCHE <span style="color:#ff0000;">DISABLE CONSTRAINT</span> COCHE_CHK .</li>
</ul>
</li>
<li>Activar restricciones: <span style="color:#ff0000;">ENABLE CONSTRAINT</span> nombre . Para activar restricciones previamente creadas y desactivadas.
<ul>
<li>Ejemplo: <strong>ALTER TABLE</strong> COCHE <span style="color:#ff0000;">ENABLE CONSTRAINT</span> COCHE_CHK</li>
</ul>
</li>
<li>Renombrar restricciones: <span style="color:#ff0000;">RENAME CONSTRAINT</span> nombreViejo <span style="color:#ff0000;">TO</span> nombreNuevo. Para cambiar el nombre de una restricción previamente creada.
<ul>
<li>Ejemplo: <strong>ALTER TABLE</strong> COCHE <span style="color:#ff0000;">RENAME CONSTRAINT </span>COCHE_CHK <span style="color:#ff0000;">TO</span> COMBUSTIBLE_CHK</li>
</ul>
</li>
</ul>
<p>Las acciones destinadas a modificar una tabla son las siguientes:</p>
<ul>
<li>Borrar una tabla: <span style="color:#ff0000;">DROP TABLE</span> nombre_tabla. Al borrar una tabla tenemos que tener en cuenta que el borrado es irreversible, desapareciendo los datos que tenía, aunque prevalecen las vistas y los sinónimos referentes a esa tabla, siendo conveniente eliminarlos posteriormente. Lógicamente sólo podremos borrar tablas si tenemos permisos para ello.
<ul>
<li>Ejemplo: <span style="color:#ff0000;">DROP TABLE</span> conductor.</li>
</ul>
</li>
<li>Renombrar una tabla: <span style="color:#ff0000;">RENAME</span> nombreViejo <span style="color:#ff0000;">TO</span> nombreNuevo. Cambia el nombre de una tabla previamente creada de un nombre antiguo a uno nuevo.
<ul>
<li>Ejemplo: <span style="color:#ff0000;">RENAME</span> conductor <span style="color:#ff0000;">TO</span> conductores.</li>
</ul>
</li>
<li>Borrar el contenido de una tabla: <span style="color:#ff0000;">TRUNCATE TABLE</span> nombreTabla. Borra los datos de la tabla sin borrar la tabla.
<ul>
<li>Ejemplo: <span style="color:#ff0000;">TRUNCATE TABLE</span> conductores.</li>
</ul>
</li>
</ul>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/patricio33.wordpress.com/188/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/patricio33.wordpress.com/188/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/patricio33.wordpress.com/188/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/patricio33.wordpress.com/188/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/patricio33.wordpress.com/188/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/patricio33.wordpress.com/188/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/patricio33.wordpress.com/188/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/patricio33.wordpress.com/188/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/patricio33.wordpress.com/188/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/patricio33.wordpress.com/188/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/patricio33.wordpress.com/188/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/patricio33.wordpress.com/188/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/patricio33.wordpress.com/188/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/patricio33.wordpress.com/188/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=patricio33.wordpress.com&amp;blog=12284872&amp;post=188&amp;subd=patricio33&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://patricio33.wordpress.com/2010/03/08/modificando-tablas-mediante-sql-ddl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a8813ea378049a62c5bc325d37115c84?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">patricio33</media:title>
		</media:content>
	</item>
		<item>
		<title>Un día oí</title>
		<link>http://patricio33.wordpress.com/2010/03/05/un-dia-oi-5/</link>
		<comments>http://patricio33.wordpress.com/2010/03/05/un-dia-oi-5/#comments</comments>
		<pubDate>Fri, 05 Mar 2010 09:39:06 +0000</pubDate>
		<dc:creator>patricio33</dc:creator>
				<category><![CDATA[Frase del Dia]]></category>
		<category><![CDATA[Paulo Coelho]]></category>

		<guid isPermaLink="false">http://patricio33.wordpress.com/?p=181</guid>
		<description><![CDATA[&#8230; a alguien decir &#8220;No tenía miedo a las dificultades: lo que la asustaba era la obligación de tener que escoger un camino. Escoger un camino significaba abandonar otros.&#8221;<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=patricio33.wordpress.com&amp;blog=12284872&amp;post=181&amp;subd=patricio33&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>&#8230; a alguien decir &#8220;No tenía miedo a las dificultades: lo que la asustaba era la obligación de tener que escoger un camino. Escoger un camino significaba abandonar otros.&#8221;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/patricio33.wordpress.com/181/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/patricio33.wordpress.com/181/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/patricio33.wordpress.com/181/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/patricio33.wordpress.com/181/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/patricio33.wordpress.com/181/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/patricio33.wordpress.com/181/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/patricio33.wordpress.com/181/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/patricio33.wordpress.com/181/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/patricio33.wordpress.com/181/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/patricio33.wordpress.com/181/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/patricio33.wordpress.com/181/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/patricio33.wordpress.com/181/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/patricio33.wordpress.com/181/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/patricio33.wordpress.com/181/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=patricio33.wordpress.com&amp;blog=12284872&amp;post=181&amp;subd=patricio33&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://patricio33.wordpress.com/2010/03/05/un-dia-oi-5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a8813ea378049a62c5bc325d37115c84?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">patricio33</media:title>
		</media:content>
	</item>
		<item>
		<title>Uso práctico de Interfaz en Java. Visibilidad de métodos.</title>
		<link>http://patricio33.wordpress.com/2010/03/04/uso-practico-de-interfaz-en-java-visibilidad-de-metodos/</link>
		<comments>http://patricio33.wordpress.com/2010/03/04/uso-practico-de-interfaz-en-java-visibilidad-de-metodos/#comments</comments>
		<pubDate>Thu, 04 Mar 2010 17:09:17 +0000</pubDate>
		<dc:creator>patricio33</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[Ejemplos]]></category>
		<category><![CDATA[Interfaz]]></category>
		<category><![CDATA[Java SE]]></category>

		<guid isPermaLink="false">http://patricio33.wordpress.com/?p=170</guid>
		<description><![CDATA[Un uso común de las interfaces en Java es cuando quieres tener accesibilidad pública a algún método o atributo de una clase que , por cuestiones de diseño, tiene visibilidad privada o de paquete. Para ilustrar ésto, en el siguiente &#8230; <a href="http://patricio33.wordpress.com/2010/03/04/uso-practico-de-interfaz-en-java-visibilidad-de-metodos/">Sigue leyendo <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=patricio33.wordpress.com&amp;blog=12284872&amp;post=170&amp;subd=patricio33&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Un uso común de las<a title="Interfaz" href="http://patricio33.wordpress.com/2010/03/03/interfaces/" target="_self"> interfaces</a> en Java es cuando quieres tener accesibilidad pública a algún método o atributo de una clase que , por cuestiones de diseño, tiene visibilidad privada o de paquete.</p>
<p>Para ilustrar ésto, en el siguiente ejemplo tenemos la clase Conductor dentro de la clase Coche, ambas dentro del paquete cursojava.Coche:</p>
<p><pre class="brush: java;">
package cursojava;
public class Coche {

private String marca;
private String modelo;
private Conductor conductor;
public Coche(String marca, String modelo) {
this.marca = marca;
this.modelo = modelo;
conductor = new Conductor(&quot;Fernando Alonso&quot;);
}
public Conductor getConductor() {
return conductor;
}
public String getMarca() {
return marca;
}
public String getModelo() {
return modelo;
}

// la clase conductor solo tiene accesibilidad en clases que estén en el mismo paquete
class Conductor{
private String nombre;
public Conductor(String nombre) {
this.nombre = nombre;
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
}
</pre></p>
<p><span style="font-family:Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif;line-height:19px;white-space:normal;font-size:13px;">Desde la clase Principal, ubicada en el paquete cursojava.principal, no podemos acceder al método getNombre de la clase conductor dado que no es accesible al estar en paquetes distintos.</span><br />
<span style="font-family:Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif;line-height:19px;white-space:normal;font-size:13px;"> </span></p>
<p><pre class="brush: java;">
package cursojava.principal;
import cursojava.Coche;
public class Principal {
public static void main(String[] args) {
Coche coche = new Coche(&quot;Ferrari&quot;, &quot;F10&quot;);
//Tanto si intentamos acceder a getConductor creando un nuevo objeto
//de la clase conductor
Conductor conductor = coche.getConductor();
//Como  si lo hacemos llamando al atributo conductor de coche
String nombre = coche.getConductor().getNombre();
//nos será imposible acceder al método getnombre
System.out.println(conductor.getNombre());
}
}
</pre></p>
<p>Para solucionar este problema nos ayudaremos de un interfaz, que podemos definir en cualquier paquete, teniendo que importarlo si lo definiéramos en otro. Por ejemplo, en nuestro caso crearemos un Interfaz llamado IConductor ubicado en el paquete cursojava.interfaz y lo importaremos en los otros paquetes.</p>
<p>El interfaz lo definiremos de la siguiente forma:</p>
<p><pre class="brush: java;">
package cursojava.interfaz;
public interface IConductor {
public String getNombre();
}
</pre></p>
<p>Y el resto de clases quedarán como sigue (observar los comentarios):</p>
<p><pre class="brush: java;">
package cursojava;
import cursojava.interfaz.IConductor;
public class Coche {
private String marca;
private String modelo;
private Conductor conductor;

public Coche(String marca, String modelo) {
this.marca = marca;
this.modelo = modelo;
conductor = new Conductor(&quot;Fernando Alonso&quot;);
}

public Conductor getConductor() {
return conductor;
}

public String getMarca() {
return marca;
}

public String getModelo() {
return modelo;
}
}

// Ahora la clase Conductor implementa al Interface IConductor

class Conductor implements IConductor{
private String nombre;

public Conductor(String nombre) {
this.nombre = nombre;
}

//Debemos de implementar el método getNombre del Interfaz

public String getNombre() {
return nombre;
}

public void setNombre(String nombre) {
this.nombre = nombre;
}

}

</pre></p>
<p><pre class="brush: java;">
package cursojava.principal;
import cursojava.Coche;
import cursojava.interfaz.IConductor;

public class Principal {

public static void main(String[] args) {
Coche coche = new Coche(&quot;Ferrari&quot;, &quot;F10&quot;);
//Ahora accedemos por medio del Interfaz IConductor al método getConductor
IConductor conductor = coche.getConductor();
System.out.println(conductor.getNombre());
}
}
</pre></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/patricio33.wordpress.com/170/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/patricio33.wordpress.com/170/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/patricio33.wordpress.com/170/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/patricio33.wordpress.com/170/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/patricio33.wordpress.com/170/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/patricio33.wordpress.com/170/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/patricio33.wordpress.com/170/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/patricio33.wordpress.com/170/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/patricio33.wordpress.com/170/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/patricio33.wordpress.com/170/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/patricio33.wordpress.com/170/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/patricio33.wordpress.com/170/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/patricio33.wordpress.com/170/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/patricio33.wordpress.com/170/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=patricio33.wordpress.com&amp;blog=12284872&amp;post=170&amp;subd=patricio33&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://patricio33.wordpress.com/2010/03/04/uso-practico-de-interfaz-en-java-visibilidad-de-metodos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a8813ea378049a62c5bc325d37115c84?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">patricio33</media:title>
		</media:content>
	</item>
		<item>
		<title>Un día oí</title>
		<link>http://patricio33.wordpress.com/2010/03/04/un-dia-oi-4/</link>
		<comments>http://patricio33.wordpress.com/2010/03/04/un-dia-oi-4/#comments</comments>
		<pubDate>Thu, 04 Mar 2010 00:49:59 +0000</pubDate>
		<dc:creator>patricio33</dc:creator>
				<category><![CDATA[Frase del Dia]]></category>
		<category><![CDATA[Albert Einstein]]></category>

		<guid isPermaLink="false">http://patricio33.wordpress.com/?p=164</guid>
		<description><![CDATA[&#8230; a alguien decir &#8220;Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas.&#8221;<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=patricio33.wordpress.com&amp;blog=12284872&amp;post=164&amp;subd=patricio33&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>&#8230; a alguien decir &#8220;Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas.&#8221;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/patricio33.wordpress.com/164/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/patricio33.wordpress.com/164/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/patricio33.wordpress.com/164/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/patricio33.wordpress.com/164/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/patricio33.wordpress.com/164/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/patricio33.wordpress.com/164/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/patricio33.wordpress.com/164/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/patricio33.wordpress.com/164/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/patricio33.wordpress.com/164/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/patricio33.wordpress.com/164/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/patricio33.wordpress.com/164/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/patricio33.wordpress.com/164/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/patricio33.wordpress.com/164/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/patricio33.wordpress.com/164/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=patricio33.wordpress.com&amp;blog=12284872&amp;post=164&amp;subd=patricio33&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://patricio33.wordpress.com/2010/03/04/un-dia-oi-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a8813ea378049a62c5bc325d37115c84?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">patricio33</media:title>
		</media:content>
	</item>
		<item>
		<title>Ejemplo de creación de tablas mediante SQL (DDL).</title>
		<link>http://patricio33.wordpress.com/2010/03/03/ejemplo-de-creacion-de-tablas-mediante-sql-ddl/</link>
		<comments>http://patricio33.wordpress.com/2010/03/03/ejemplo-de-creacion-de-tablas-mediante-sql-ddl/#comments</comments>
		<pubDate>Wed, 03 Mar 2010 23:28:25 +0000</pubDate>
		<dc:creator>patricio33</dc:creator>
				<category><![CDATA[Bases de Datos]]></category>
		<category><![CDATA[Oracle 10g]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[Base de Datos]]></category>
		<category><![CDATA[Creación de Tablas]]></category>
		<category><![CDATA[DDL]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Tablas]]></category>

		<guid isPermaLink="false">http://patricio33.wordpress.com/?p=158</guid>
		<description><![CDATA[En este post llevaremos a la práctica todo lo dicho en la entrada donde se explicaba la creación de tablas con DLL. Para ello crearemos las tablas necesarias para modelizar el siguiente diagrama entidad-relación básico para una empresa de una &#8230; <a href="http://patricio33.wordpress.com/2010/03/03/ejemplo-de-creacion-de-tablas-mediante-sql-ddl/">Sigue leyendo <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=patricio33.wordpress.com&amp;blog=12284872&amp;post=158&amp;subd=patricio33&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>En este post llevaremos a la práctica todo lo dicho en <a title="Creacion de tablas con SQL" href="http://patricio33.wordpress.com/2010/03/03/creacion-de-tablas-mediante-sql-ddl/" target="_self">la entrada donde se explicaba la creación de tablas con DLL</a>.</p>
<p>Para ello crearemos las tablas necesarias para modelizar el siguiente diagrama entidad-relación básico para una empresa de una empresa mayorista:</p>
<p><a href="http://patricio33.files.wordpress.com/2010/03/entidadrelacion.jpg"><img class="aligncenter size-medium wp-image-133" title="Modelo entidad relación" src="http://patricio33.files.wordpress.com/2010/03/entidadrelacion.jpg?w=300&#038;h=216" alt="" width="300" height="216" /></a></p>
<p><pre class="brush: sql;">
CREATE TABLE CLIENTE (
DNI VARCHAR2(10),
&amp;lNOMBRE VARCHAR2(20),
FECHA_NAC DATE NOT NULL,
TFNO VARCHAR2(10),
APELLIDOS VARCHAR2(100),
CONSTRAINT CLIENTE_PK PRIMARY KEY (DNI)
)
CREATE TABLE PROVEEDOR(
NIF VARCHAR2(10),
NOMBRE VARCHAR2(20),
DIRECCION VARCHAR2(200),
CONSTRAINT PROVEEDOR_PK PRIMARY KEY (NIF)

)

CREATE TABLE PRODUCTO(
NOMBRE VARCHAR2(50),
CODIGO VARCHAR2(50),
PRECIO NUMBER(10) NOT NULL,
PRV_NIF VARCHAR2(10),
CONSTRAINT PRODUCTO_PK PRIMARY KEY (CODIGO),
CONSTRAINT PROVEEDOR_FK FOREIGN KEY(PRV_NIF) REFERENCES PROVEEDOR (NIF)
)

CREATE TABLE CLIENTE_PRODUCTO(
PRD_CODIGO VARCHAR(50),
CLN_DNI VARCHAR(10),
CONSTRAINT CLIENTE_PRODUCTO_PK PRIMARY KEY (PRD_CODIGO, CLN_DNI),
CONSTRAINT PRODUCTOCP_FK FOREIGN KEY (PRD_CODIGO) REFERENCES PRODUCTO(CODIGO),
CONSTRAINT CLIENTECP_FK FOREIGN KEY (CLN_DNI) REFERENCES CLIENTE(DNI)
)
</pre></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/patricio33.wordpress.com/158/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/patricio33.wordpress.com/158/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/patricio33.wordpress.com/158/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/patricio33.wordpress.com/158/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/patricio33.wordpress.com/158/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/patricio33.wordpress.com/158/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/patricio33.wordpress.com/158/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/patricio33.wordpress.com/158/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/patricio33.wordpress.com/158/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/patricio33.wordpress.com/158/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/patricio33.wordpress.com/158/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/patricio33.wordpress.com/158/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/patricio33.wordpress.com/158/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/patricio33.wordpress.com/158/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=patricio33.wordpress.com&amp;blog=12284872&amp;post=158&amp;subd=patricio33&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://patricio33.wordpress.com/2010/03/03/ejemplo-de-creacion-de-tablas-mediante-sql-ddl/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a8813ea378049a62c5bc325d37115c84?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">patricio33</media:title>
		</media:content>

		<media:content url="http://patricio33.files.wordpress.com/2010/03/entidadrelacion.jpg?w=300" medium="image">
			<media:title type="html">Modelo entidad relación</media:title>
		</media:content>
	</item>
		<item>
		<title>Creación de tablas mediante SQL (DDL)</title>
		<link>http://patricio33.wordpress.com/2010/03/03/creacion-de-tablas-mediante-sql-ddl/</link>
		<comments>http://patricio33.wordpress.com/2010/03/03/creacion-de-tablas-mediante-sql-ddl/#comments</comments>
		<pubDate>Wed, 03 Mar 2010 23:18:46 +0000</pubDate>
		<dc:creator>patricio33</dc:creator>
				<category><![CDATA[Bases de Datos]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[Creación de Tablas]]></category>
		<category><![CDATA[DDL]]></category>
		<category><![CDATA[Tablas]]></category>

		<guid isPermaLink="false">http://patricio33.wordpress.com/?p=137</guid>
		<description><![CDATA[Como sabemos DDL (Data Definition  Language) es la parte de lenguaje SQL encargado de realizar la función de definición de datos, así pues compondrán el conjunto de instrucciones SQL que permiten definir o borrar objetos de base de datos tales como tablas &#8230; <a href="http://patricio33.wordpress.com/2010/03/03/creacion-de-tablas-mediante-sql-ddl/">Sigue leyendo <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=patricio33.wordpress.com&amp;blog=12284872&amp;post=137&amp;subd=patricio33&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div id="_mcePaste" style="text-align:justify;">Como sabemos DDL (Data Definition  Language) es la parte de lenguaje SQL encargado de realizar la función de definición de datos, así pues compondrán el conjunto de instrucciones SQL que permiten definir o borrar objetos de base de datos tales como tablas o vistas.</div>
<div id="_mcePaste" style="text-align:justify;">Es importante tener en cuenta que ninguna instrucción DDL puede ser anulada, por lo que hay que tener mucha precaución a la hora de utilizarlas. Es decir, las instrucciones DDL son definitivas.</div>
<div style="text-align:justify;">En este artículo abordaremos la parte de DDL encargada de definir las tablas de las bases de datos.</div>
<div style="text-align:justify;">El formato general para crear una tabla será el siguiente:</div>
<div><pre class="brush: plain;">
CREATE TABLE nombre_tabla(
definición_columna
[, definición_columna...]
[, restricciones_tabla]);
</pre></p>
<p><span style="font-family:Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif;line-height:19px;white-space:normal;font-size:13px;"> </span></p>
<p style="text-align:justify;">El proceso que hay que seguir para crear una tabla es:</p>
<ul>
<li>Lo primero es decidir que nombre queremos ponerle a la tabla (nombre_tabla). Para dar el nombre deberemos de tener en cuenta que:
<ul>
<li>Deben comenzar con una letra</li>
<li> No deben tener más de 30 caracteres</li>
<li>Sólo se permiten utilizar letras del alfabeto, número o elsigno de subrayado.</li>
<li> No puede haber dos tablas con el mismo nombre para el mismo esquema.</li>
<li> No pueden coincidir con el nombre de una palabra reservada SQL.</li>
</ul>
</li>
<li> Después, iremos dando el nombre de cada uno de los atributos que formarán las columnas de la tabla (nombre_columna). A cada una de las columnas le asignaremos un tipo de datos predefinido o bien un dominio definido por el usuario. También podremos dar definiciones por defecto y restricciones de columna. En esta parte nuestra definición tendrá el siguiente formato:</li>
</ul>
</div>
<p><span style="font-family:Consolas, Monaco, 'Courier New', Courier, monospace;line-height:18px;font-size:12px;white-space:pre;"> </span></p>
<p><pre class="brush: sql;">
nombre_columna {tipo_datos} [def_defecto] [restric_col]
</pre></p>
<p>Los <span style="color:#ff0000;">tipos de datos</span> que se pueden utilizar son:</p>
<p><a href="http://patricio33.files.wordpress.com/2010/03/tiposdedatosfinal.jpg"><img class="aligncenter size-medium wp-image-150" title="Tipos de Datos Columna " src="http://patricio33.files.wordpress.com/2010/03/tiposdedatosfinal.jpg?w=300&#038;h=204" alt="SQL DDL" width="300" height="204" /></a></p>
<p style="text-align:justify;">La opción <span style="color:#3366ff;">def_defecto</span> nos permite especificar qué nomenclatura queremos dar a nuestros valores por omisión.</p>
<p style="text-align:justify;">Por ejemplo, para un empleado que todavía no se ha decidido cuánto ganará, podemos elegir que, de momento, tenga un sueldo de 0 euros (DEFAULT 0.0), o bien que tenga un sueldo con un valor nulo (DEFAULT NULL).</p>
<p style="text-align:justify;"> Sin embargo, hay que tener en cuenta que si elegimos la opción DEFAULT NULL, la columna para la que daremos la definición por defecto de valor nulo debería admitir valores nulos.</p>
<p> La opción DEFAULT tiene el siguiente formato:</p>
<p><pre class="brush: sql;">

DEFAULT (literal|null)

</pre></p>
<p>Las <span style="color:#339966;">restriccione</span><span style="color:#339966;">s</span> que se pueden dar son las que aparecen en la tabla que tenemos a continuación:</p>
<p><a href="http://patricio33.files.wordpress.com/2010/03/restriccionescolumna.jpg"><img class="aligncenter size-medium wp-image-151" title="restriccionescolumna" src="http://patricio33.files.wordpress.com/2010/03/restriccionescolumna.jpg?w=300&#038;h=117" alt="Restricciones Columnas Tablas SQL" width="300" height="117" /></a></p>
<ul>
<li>Una vez definidas las columnas, sólo nos quedará dar las restricciones de tabla, según la tabla que se muestra a continuación:</li>
</ul>
<p><a href="http://patricio33.files.wordpress.com/2010/03/restriccionestabla.jpg"><img class="aligncenter size-medium wp-image-152" title="restriccionestabla" src="http://patricio33.files.wordpress.com/2010/03/restriccionestabla.jpg?w=300&#038;h=125" alt="Restricciones Tabla SQL " width="300" height="125" /></a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/patricio33.wordpress.com/137/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/patricio33.wordpress.com/137/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/patricio33.wordpress.com/137/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/patricio33.wordpress.com/137/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/patricio33.wordpress.com/137/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/patricio33.wordpress.com/137/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/patricio33.wordpress.com/137/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/patricio33.wordpress.com/137/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/patricio33.wordpress.com/137/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/patricio33.wordpress.com/137/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/patricio33.wordpress.com/137/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/patricio33.wordpress.com/137/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/patricio33.wordpress.com/137/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/patricio33.wordpress.com/137/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=patricio33.wordpress.com&amp;blog=12284872&amp;post=137&amp;subd=patricio33&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://patricio33.wordpress.com/2010/03/03/creacion-de-tablas-mediante-sql-ddl/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a8813ea378049a62c5bc325d37115c84?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">patricio33</media:title>
		</media:content>

		<media:content url="http://patricio33.files.wordpress.com/2010/03/tiposdedatosfinal.jpg?w=300" medium="image">
			<media:title type="html">Tipos de Datos Columna </media:title>
		</media:content>

		<media:content url="http://patricio33.files.wordpress.com/2010/03/restriccionescolumna.jpg?w=300" medium="image">
			<media:title type="html">restriccionescolumna</media:title>
		</media:content>

		<media:content url="http://patricio33.files.wordpress.com/2010/03/restriccionestabla.jpg?w=300" medium="image">
			<media:title type="html">restriccionestabla</media:title>
		</media:content>
	</item>
		<item>
		<title>Interfaces</title>
		<link>http://patricio33.wordpress.com/2010/03/03/interfaces/</link>
		<comments>http://patricio33.wordpress.com/2010/03/03/interfaces/#comments</comments>
		<pubDate>Wed, 03 Mar 2010 00:16:54 +0000</pubDate>
		<dc:creator>patricio33</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[Abstract]]></category>
		<category><![CDATA[Interfaz]]></category>
		<category><![CDATA[Java SE]]></category>

		<guid isPermaLink="false">http://patricio33.wordpress.com/?p=91</guid>
		<description><![CDATA[Las interfaces son el máximo exponente del polimorfismo. Son equivalentes a una clase completamente abstracta, es decir, con todos sus métodos  abstractos (sin cuerpo). Se declaran con la palabra reservada (“interface”). El interface puede tener datos y su forma general será como &#8230; <a href="http://patricio33.wordpress.com/2010/03/03/interfaces/">Sigue leyendo <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=patricio33.wordpress.com&amp;blog=12284872&amp;post=91&amp;subd=patricio33&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div id="_mcePaste">Las interfaces son el máximo exponente del polimorfismo. Son equivalentes a una clase completamente abstracta, es decir, con todos sus métodos  abstractos (sin cuerpo).</div>
<div>Se declaran con la palabra reservada (“interface”). El interface puede tener datos y su forma general será como sigue:</div>
<div><pre class="brush: java;">
public interface NombreInterfaz{
// datos  constantes
// métodos (sólo signatura)
}
</pre></p>
</div>
<div id="_mcePaste">Los métodos se declaran de forma normal (sin “abstract”) y definen la signatura a implementar en las clases que implementen la interfaz. Las clases pueden implementar todas las interfaces que quieran.</div>
<div>
<div>Los interfaces no heredan, se implementan, de tal forma que cuando cree una clase que implemente un interfaz base utilizaré  la palabra reservada “implements”.</div>
<div><pre class="brush: java;">
public class ClaseConInterfaz implements NombreInterfaz
</pre></p>
</div>
<div>Ejemplo de interfaz:</div>
<div><pre class="brush: java;">
public interface Figura {
//dato constante
public final Color COLOR = Color.BLUE;
/**método sin &quot;abstract&quot; que define como deberán de implementarlos la clase que implemente
la interfaz**/
public double volumen();
}
public class Cubo implements Figura
{
private float arista;
public Cubo(float arista){
this.arista = arista;
}
/** La clase implementa el método conforme ha sido definido previamente
en el interfez (mismo nombre y tipos de datos)**/
public double volumen() {
return Math.pow(arista, 3);
}
}

public class Tablero
{
public static void main(String[] args) {
Cubo cubo = new Cubo(6.23);
Color color = Cubo.COLOR;
System.out.println(&quot;Volumen: &quot; + cubo.volumen());
}
}

</pre></p>
</div>
</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/patricio33.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/patricio33.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/patricio33.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/patricio33.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/patricio33.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/patricio33.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/patricio33.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/patricio33.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/patricio33.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/patricio33.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/patricio33.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/patricio33.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/patricio33.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/patricio33.wordpress.com/91/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=patricio33.wordpress.com&amp;blog=12284872&amp;post=91&amp;subd=patricio33&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://patricio33.wordpress.com/2010/03/03/interfaces/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a8813ea378049a62c5bc325d37115c84?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">patricio33</media:title>
		</media:content>
	</item>
		<item>
		<title>Clases Abstractas</title>
		<link>http://patricio33.wordpress.com/2010/03/03/clases-abstractas/</link>
		<comments>http://patricio33.wordpress.com/2010/03/03/clases-abstractas/#comments</comments>
		<pubDate>Wed, 03 Mar 2010 00:16:03 +0000</pubDate>
		<dc:creator>patricio33</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[Clase]]></category>
		<category><![CDATA[Clase Abstracta]]></category>
		<category><![CDATA[Java SE]]></category>
		<category><![CDATA[método]]></category>

		<guid isPermaLink="false">http://patricio33.wordpress.com/?p=84</guid>
		<description><![CDATA[Las clases abstractas se definen por medio de la palabra reservada &#8220;abstract&#8221;. Son clases inacabadas y como tales  no se puede instanciar. Están pensadas para representar conceptos abstractos. Su única finalidad es que otras clases hereden de ellas, proporcionando los atributos y &#8230; <a href="http://patricio33.wordpress.com/2010/03/03/clases-abstractas/">Sigue leyendo <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=patricio33.wordpress.com&amp;blog=12284872&amp;post=84&amp;subd=patricio33&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Las clases abstractas se definen por medio de la palabra reservada &#8220;abstract&#8221;. Son clases inacabadas y como tales  no se puede instanciar. Están pensadas para representar conceptos abstractos. Su única finalidad es que otras clases hereden de ellas, proporcionando los atributos y métodos que serán compartidos por todas sus clases derivadas.</p>
<div id="_mcePaste">Sirven para poder implementar conceptos que no deban existir físicamente.</div>
<p>Los métodos pueden declararse con la palabra reservada “abstract” y éstos metodos se caracterizan porque no pueden tener cuerpo.</p>
<p><span style="font-family:Consolas, Monaco, 'Courier New', Courier, monospace;line-height:18px;font-size:12px;white-space:pre;"> </span></p>
<p><pre class="brush: java;">
public abstract void metodo();
</pre></p>
<p>Además de métodos abstractos una clase puede contener otro tipo de métodos, eso sí una clase con al menos un método abstracto, debe declararse abstracta.</p>
<p>Un posible ejemplo podría ser:  <em> </em></p>
<pre style="font:normal normal normal 12px/18px Consolas, Monaco, 'Courier New', Courier, monospace;"><pre class="brush: java;">
public abstract class Geometria{
private Color color;
/**Se define un metodo abstracto sin cuerpo, posteriormente
son implementados gracias al polimorfismo en las clases derivadas**/
public abstract double perimetro();  
public abstract double area();
//Puede contener métodos no abstractos como getColor
public Color getColor() { return color; } 
} 

public class Cuadrado extends Geometria{ 
private float lado; 
public Cuadrado(float lado) { this.lado = lado; }
/**para cada instanciación se define el método 
abstracto de la clase super**/
public double area() {  return lado*lado; }
/**para cada instanciación se define el método 
abstracto de la clase super**/
public double perimetro() {  return 4*lado; } }  
public class Lienzo{  public static void main(String[] args) { 
Cuadrado cuadrado = new Cuadrado(4.52); 
System.out.println(&quot;Area: &quot; + cuadrado.area()); 
System.out.println(&quot;Perimetro: &quot; + cuadrado.perimetro());   
} 
} 
</pre>
</pre>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/patricio33.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/patricio33.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/patricio33.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/patricio33.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/patricio33.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/patricio33.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/patricio33.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/patricio33.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/patricio33.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/patricio33.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/patricio33.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/patricio33.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/patricio33.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/patricio33.wordpress.com/84/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=patricio33.wordpress.com&amp;blog=12284872&amp;post=84&amp;subd=patricio33&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://patricio33.wordpress.com/2010/03/03/clases-abstractas/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a8813ea378049a62c5bc325d37115c84?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">patricio33</media:title>
		</media:content>
	</item>
		<item>
		<title>Polimorfismo</title>
		<link>http://patricio33.wordpress.com/2010/03/03/polimorfismo/</link>
		<comments>http://patricio33.wordpress.com/2010/03/03/polimorfismo/#comments</comments>
		<pubDate>Wed, 03 Mar 2010 00:14:01 +0000</pubDate>
		<dc:creator>patricio33</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[Ejemplo práctico]]></category>
		<category><![CDATA[Java SE]]></category>
		<category><![CDATA[Polimorfismo]]></category>

		<guid isPermaLink="false">http://patricio33.wordpress.com/?p=77</guid>
		<description><![CDATA[El polimorfismo es una característica de la POO aplicable a los métodos que permite ejecutar un código de método distinto según el objeto que se haya instanciado y referenciado. Para que se de en Java se necesita que exista:  Relación de herencia. &#8230; <a href="http://patricio33.wordpress.com/2010/03/03/polimorfismo/">Sigue leyendo <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=patricio33.wordpress.com&amp;blog=12284872&amp;post=77&amp;subd=patricio33&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div id="_mcePaste" style="text-align:justify;">El polimorfismo es una característica de la POO aplicable a los métodos que permite ejecutar un código de método distinto según el objeto que se haya instanciado y referenciado. Para que se de en Java se necesita que exista:</div>
<div id="_mcePaste" style="text-align:justify;">
<ul>
<li> Relación de herencia.</li>
<li> Exactamente la misma signatura de método en ambas clases (padre e hija).</li>
</ul>
</div>
<p style="text-align:justify;">Se puede redefinir cualquier método salvo aquellos que sean &#8220;final&#8221; o &#8220;static&#8221;.</p>
<p style="text-align:justify;">Se puede acceder a un método de la superclase que haya sido redefinido utilizando la palabra <span style="color:#ff0000;">super</span>.</p>
<p style="text-align:justify;">
<p><pre class="brush: java;">
// Método clase base
public int funcion()
// Método redefinido en la clase derivada
public int funcion()
// Acceso al método de la clase base
super.funcion()
</pre></p>
<p style="text-align:justify;">Un <em>ejemplo</em> de polimorfismo podría ser:</p>
<p style="text-align:justify;">
<p><pre class="brush: java;">
//Clase super
public class Empleado
{
protected int sueldoBase = 700;
public int getSueldo() {
return sueldoBase;
}
}
//La clase Analista hereda a Empleado
public class Analista extends Empleado
{
//Y &quot;polimorfea&quot; getSueldo
public int getSueldo() {
return sueldoBase + 500;
}
}

//La clase Programador hereda a Empleado
public class Programador extends Empleado
{
//Y &quot;polimorfea&quot; getSueldo de forma distinta a Analista
public int getSueldo() {
return sueldoBase + 70;
}
}
</pre></p>
<p>Como sabemos cualquier clase que creamos en Java se hereda de la clase Object. De esta clase, los métodos que pueden ser redefinidos son:</p>
<ul>
<li>clone():  crea un objeto a partir de otro objeto de la misma clase.</li>
<li> equals(object):  indica si dos objetos son o no iguales. Devuelve true si son iguales.</li>
<li> toString():  devuelve un String conteniendo una representación del objeto como cadena de caracteres.</li>
</ul>
<p>Por último comentar que el atributo &#8220;final&#8221; , si se indica en un método, no se podrá “polimorfear” ese método en clases derivadas:</p>
<p><pre class="brush: java;">

class MiClase
{

public final void metodoNoPolimorfeable()
{ ...
</pre></p>
<p>Y si se indica en una clase, no se podrá heredar de dicha clase.</p>
<p><pre class="brush: java;">

final class ClaseNoHeredable
{ ...
</pre></p>
<p>Por ejemplo, los tipos de datos básicos mapeados en clases son de tipo final.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/patricio33.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/patricio33.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/patricio33.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/patricio33.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/patricio33.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/patricio33.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/patricio33.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/patricio33.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/patricio33.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/patricio33.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/patricio33.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/patricio33.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/patricio33.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/patricio33.wordpress.com/77/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=patricio33.wordpress.com&amp;blog=12284872&amp;post=77&amp;subd=patricio33&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://patricio33.wordpress.com/2010/03/03/polimorfismo/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a8813ea378049a62c5bc325d37115c84?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">patricio33</media:title>
		</media:content>
	</item>
	</channel>
</rss>
