<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-595442523977962160</id><updated>2024-11-05T19:11:48.768-08:00</updated><category term="java"/><category term=".jar"/><category term="Como crear un .jar desde JCreator"/><category term="algoritmos."/><category term="analisis sintactico en java"/><category term="codigo java"/><category term="jar"/><category term="jar file"/><category term="jar java"/><category term="java jar"/><category term="que es java"/><category term="Escalamiento"/><category term="Rotación"/><category term="Traslación"/><category term="aportes"/><category term="audio y video en java"/><category term="banco de ideas"/><category term="captura de audio java"/><category term="captura de video java"/><category term="capturar video en java."/><category term="conseptos basicos"/><category term="conseptos basicos de java"/><category term="crear .jar"/><category term="create a jar"/><category term="escalacion en java"/><category term="java codes"/><category term="jcreator"/><category term="mejoras"/><category term="operadores"/><category term="preguntas"/><category term="programacion"/><category term="programas"/><category term="proyectos"/><category term="rotacion en java"/><category term="tipos de datos"/><category term="tranformaciones"/><category term="transformaciones en java"/><category term="translacion en java"/><category term="variables"/><category term="video java"/><title type='text'>kriptoz.lab</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://kriptozcode.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/595442523977962160/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://kriptozcode.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>_-_-Luiz-_-_</name><uri>http://www.blogger.com/profile/04002041160161655189</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRZbWEQFxx1kHa5QXnhPeK_COgsquh9hnVnqkGeBk2oOZXghPWrMyFfFqw58uNb-LssIF0SR4jZo8Cw6U55NmkncvOX8tV-cCcIgJW5iZLrtjpJD5wk2JF2PKnoOCvD_M/s220/D_N_Angel_Dark_Plushie.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>18</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-595442523977962160.post-8392078458122244734</id><published>2020-08-12T11:26:00.000-07:00</published><updated>2020-08-12T11:26:59.970-07:00</updated><title type='text'>Nueva WEB para compartir codigo con ustedes!</title><content type='html'>&lt;p&gt;Hola les comento que he ahora nos encontramos en la siguiente WEB para continuar compartiendo codigo con ustedes.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://www.codigotips.com.mx&quot;&gt;https://www.codigotips.com.mx&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://kriptozcode.blogspot.com/feeds/8392078458122244734/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kriptozcode.blogspot.com/2020/08/nueva-web-para-compartir-codigo-con.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/595442523977962160/posts/default/8392078458122244734'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/595442523977962160/posts/default/8392078458122244734'/><link rel='alternate' type='text/html' href='http://kriptozcode.blogspot.com/2020/08/nueva-web-para-compartir-codigo-con.html' title='Nueva WEB para compartir codigo con ustedes!'/><author><name>_-_-Luiz-_-_</name><uri>http://www.blogger.com/profile/04002041160161655189</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRZbWEQFxx1kHa5QXnhPeK_COgsquh9hnVnqkGeBk2oOZXghPWrMyFfFqw58uNb-LssIF0SR4jZo8Cw6U55NmkncvOX8tV-cCcIgJW5iZLrtjpJD5wk2JF2PKnoOCvD_M/s220/D_N_Angel_Dark_Plushie.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-595442523977962160.post-214053835450893757</id><published>2013-11-24T12:54:00.001-08:00</published><updated>2013-11-24T12:58:17.021-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="algoritmos."/><category scheme="http://www.blogger.com/atom/ns#" term="analisis sintactico en java"/><category scheme="http://www.blogger.com/atom/ns#" term="escalacion en java"/><category scheme="http://www.blogger.com/atom/ns#" term="Escalamiento"/><category scheme="http://www.blogger.com/atom/ns#" term="rotacion en java"/><category scheme="http://www.blogger.com/atom/ns#" term="Rotación"/><category scheme="http://www.blogger.com/atom/ns#" term="tranformaciones"/><category scheme="http://www.blogger.com/atom/ns#" term="transformaciones en java"/><category scheme="http://www.blogger.com/atom/ns#" term="translacion en java"/><category scheme="http://www.blogger.com/atom/ns#" term="Traslación"/><title type='text'>GRAFICACION TRANSFORMACIONES</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
a algunos de ustedes les ha surgido la necesidad de crear un programa el cual realice las diferentes maneras de modificar una figura geometrica en mi caso un cuadro y un triangulo: ESCALACION, ROTACION, TRASLACION, ETC.&lt;br /&gt;
&lt;br /&gt;
aqui les dejo una aplicacion que realiza estas TRANSFORMACIONES.&lt;br /&gt;
&lt;br /&gt;
capturas de la aplicacion con el menu de seleccion de tipo de transformacion:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnLgIkTqpU2YP1k_Yj-smXv__ckjNqHGfCKWPIyDrwu8lHqyoxGy_uCSQTE6vC1-Tj2pv2eixlA4VP3APW_b0GiTgDRJK9rgoKP6N9N2bh1GaJ6GpCS0KnKeIM20SUd_A3Zx47mI4vO68/s1600/grafica.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;217&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnLgIkTqpU2YP1k_Yj-smXv__ckjNqHGfCKWPIyDrwu8lHqyoxGy_uCSQTE6vC1-Tj2pv2eixlA4VP3APW_b0GiTgDRJK9rgoKP6N9N2bh1GaJ6GpCS0KnKeIM20SUd_A3Zx47mI4vO68/s320/grafica.PNG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_5KVuIyfIdL3SAKfEEsvumV-4gM6jrY6TrrkDX4lJjAejcF__mrTbAIuH8yPduYgiEcbOii0wrZ9Vd5jrunqubD031QeZ6zaafIB0_ckXiXBnB8fN7H5Uj7901NptirzUXuFbvvwnWOE/s1600/transformaciones.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;202&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_5KVuIyfIdL3SAKfEEsvumV-4gM6jrY6TrrkDX4lJjAejcF__mrTbAIuH8yPduYgiEcbOii0wrZ9Vd5jrunqubD031QeZ6zaafIB0_ckXiXBnB8fN7H5Uj7901NptirzUXuFbvvwnWOE/s320/transformaciones.PNG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
les dejo el codigo fuente para que lo descarguen y modifiquen a su conveniencia no duden comentar si fue de utilidad.&lt;br /&gt;
&lt;br /&gt;
Fuente: &lt;a href=&quot;https://www.dropbox.com/s/gjvvsaq45eb2on1/GRAFICACION.rar&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;Download&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Saludos!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://kriptozcode.blogspot.com/feeds/214053835450893757/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kriptozcode.blogspot.com/2013/11/graficacion-transformaciones.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/595442523977962160/posts/default/214053835450893757'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/595442523977962160/posts/default/214053835450893757'/><link rel='alternate' type='text/html' href='http://kriptozcode.blogspot.com/2013/11/graficacion-transformaciones.html' title='GRAFICACION TRANSFORMACIONES'/><author><name>_-_-Luiz-_-_</name><uri>http://www.blogger.com/profile/04002041160161655189</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRZbWEQFxx1kHa5QXnhPeK_COgsquh9hnVnqkGeBk2oOZXghPWrMyFfFqw58uNb-LssIF0SR4jZo8Cw6U55NmkncvOX8tV-cCcIgJW5iZLrtjpJD5wk2JF2PKnoOCvD_M/s220/D_N_Angel_Dark_Plushie.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnLgIkTqpU2YP1k_Yj-smXv__ckjNqHGfCKWPIyDrwu8lHqyoxGy_uCSQTE6vC1-Tj2pv2eixlA4VP3APW_b0GiTgDRJK9rgoKP6N9N2bh1GaJ6GpCS0KnKeIM20SUd_A3Zx47mI4vO68/s72-c/grafica.PNG" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-595442523977962160.post-1582911288250930983</id><published>2013-11-23T20:36:00.001-08:00</published><updated>2013-11-23T20:38:00.732-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term=".jar"/><category scheme="http://www.blogger.com/atom/ns#" term="algoritmos."/><category scheme="http://www.blogger.com/atom/ns#" term="analisis sintactico en java"/><category scheme="http://www.blogger.com/atom/ns#" term="codigo java"/><category scheme="http://www.blogger.com/atom/ns#" term="Como crear un .jar desde JCreator"/><category scheme="http://www.blogger.com/atom/ns#" term="jar"/><category scheme="http://www.blogger.com/atom/ns#" term="jar file"/><category scheme="http://www.blogger.com/atom/ns#" term="jar java"/><category scheme="http://www.blogger.com/atom/ns#" term="java"/><category scheme="http://www.blogger.com/atom/ns#" term="java jar"/><title type='text'>Creacion de un archivo JAR en Tiempo de Ejecucion</title><content type='html'>&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;b&gt;Creación&amp;nbsp;de un archivo JAR en Tiempo de&amp;nbsp;Ejecución&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Ya en la entrada anterior habíamos visto como podíamos ver los archivos 
dentro de un JAR con el uso de la clase JarInputStream, hoy veremos como
 podemos crear un JAR indicándole los archivos que incluirá inclusive 
creándole un archivo manifiesto.&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Aunque todos los IDEs tienen un utilidad para generar el archivo JAR 
correspondiente, pueda que en nuestra aplicación necesitemos generar un 
JAR por algún motivo.&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
En este ejemplo lo que haremos es primero indicar la carpeta &lt;b&gt;bin &lt;/b&gt;de
 nuestro proyecto, es la carpeta donde se encuentran los archivos .class
 de nuestra aplicación. Luego indicamos si es una librería que no se 
ejecutara por si sola, o si es una aplicación y que por lo tanto si se 
ejecutara y desplegara una ventana.&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Ademas debemos indicar si es se generara un ejecutable, necesitamos saber cual es la clase que contiene el método &lt;b&gt;public static void main&lt;/b&gt;, que es la clase que se necesita ejecutar. Y adicionalmente necesitamos darle un nombre al JAR que generaremos.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;b&gt;Imágenes&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8wIStHIGwup-z_26r5zRx4O11cQVs5WW8x7ScHrM0LzFy7GVrZJ1y7oJGpBGnNsUAKJrdretds7LaosDHxgO-9t4-CYIK_7m1ZPw9Dk0uUXLGf3j1oPc3PaaneIyB2wf-CWWFgJWeRLkm/s1600/JarOutputStream+1+-+My+Java+Zone+1.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;145&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8wIStHIGwup-z_26r5zRx4O11cQVs5WW8x7ScHrM0LzFy7GVrZJ1y7oJGpBGnNsUAKJrdretds7LaosDHxgO-9t4-CYIK_7m1ZPw9Dk0uUXLGf3j1oPc3PaaneIyB2wf-CWWFgJWeRLkm/s400/JarOutputStream+1+-+My+Java+Zone+1.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijHaYR_K6jArA5wVLh4eiuaBit3IRSXWWKValenrnPfxCJw8jFD60C1bUI7ilxhT4of1OYodkn8QGL1bOBFvkjAZ-jbkEWtxTXCuuLqIT1VJ1mw4X126RBNSZa348PxfqXRE7Hr-RxXpzY/s1600/JarOutputStream+2+-+My+Java+Zone+SE.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;243&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijHaYR_K6jArA5wVLh4eiuaBit3IRSXWWKValenrnPfxCJw8jFD60C1bUI7ilxhT4of1OYodkn8QGL1bOBFvkjAZ-jbkEWtxTXCuuLqIT1VJ1mw4X126RBNSZa348PxfqXRE7Hr-RxXpzY/s400/JarOutputStream+2+-+My+Java+Zone+SE.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEheNjQ_MoZwUxhn8YCtTEMRzK449LxydwEzdExqf95GXwMnWMC-Sf9inBOfnyBtu4gWiTbCF5vZQ7ogm3hgnkKdTOZL62qvi-4ohCucc4pqhLbwO_pK9yW18LEOastuFzZHOYqjP6Z8mOw6/s1600/JarOutputStream+3+-+My+Java+Zone+SE.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;145&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEheNjQ_MoZwUxhn8YCtTEMRzK449LxydwEzdExqf95GXwMnWMC-Sf9inBOfnyBtu4gWiTbCF5vZQ7ogm3hgnkKdTOZL62qvi-4ohCucc4pqhLbwO_pK9yW18LEOastuFzZHOYqjP6Z8mOw6/s400/JarOutputStream+3+-+My+Java+Zone+SE.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Descargar&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Podrán descargar el proyecto completo directamente desde&amp;nbsp;&lt;a href=&quot;https://dl.dropboxusercontent.com/u/61822104/Proyectos%20Java%20Zone/JarOutputStream.rar&quot;&gt;aquí&lt;/a&gt;.&amp;nbsp;Se incluyen las&amp;nbsp;imágenes&amp;nbsp; los archivos fuentes y&amp;nbsp;demás. &lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://kriptozcode.blogspot.com/feeds/1582911288250930983/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kriptozcode.blogspot.com/2013/11/creacion-de-un-archivo-jar-en-tiempo-de.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/595442523977962160/posts/default/1582911288250930983'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/595442523977962160/posts/default/1582911288250930983'/><link rel='alternate' type='text/html' href='http://kriptozcode.blogspot.com/2013/11/creacion-de-un-archivo-jar-en-tiempo-de.html' title='Creacion de un archivo JAR en Tiempo de Ejecucion'/><author><name>_-_-Luiz-_-_</name><uri>http://www.blogger.com/profile/04002041160161655189</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRZbWEQFxx1kHa5QXnhPeK_COgsquh9hnVnqkGeBk2oOZXghPWrMyFfFqw58uNb-LssIF0SR4jZo8Cw6U55NmkncvOX8tV-cCcIgJW5iZLrtjpJD5wk2JF2PKnoOCvD_M/s220/D_N_Angel_Dark_Plushie.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8wIStHIGwup-z_26r5zRx4O11cQVs5WW8x7ScHrM0LzFy7GVrZJ1y7oJGpBGnNsUAKJrdretds7LaosDHxgO-9t4-CYIK_7m1ZPw9Dk0uUXLGf3j1oPc3PaaneIyB2wf-CWWFgJWeRLkm/s72-c/JarOutputStream+1+-+My+Java+Zone+1.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-595442523977962160.post-1503603935595914372</id><published>2013-07-01T20:59:00.000-07:00</published><updated>2013-07-01T21:18:00.600-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="aportes"/><category scheme="http://www.blogger.com/atom/ns#" term="banco de ideas"/><category scheme="http://www.blogger.com/atom/ns#" term="codigo java"/><category scheme="http://www.blogger.com/atom/ns#" term="java"/><category scheme="http://www.blogger.com/atom/ns#" term="java codes"/><category scheme="http://www.blogger.com/atom/ns#" term="mejoras"/><category scheme="http://www.blogger.com/atom/ns#" term="preguntas"/><category scheme="http://www.blogger.com/atom/ns#" term="programas"/><category scheme="http://www.blogger.com/atom/ns#" term="proyectos"/><title type='text'>Proyectos JAVA</title><content type='html'>Hola que tal hace ya un tiempo que no me pasaba por mi blog pero aqui de vuelta, y para decirles que si tienen alguna idea de algun proyecto que sea desarrollado como ejemplo lo mencionen: y aqui mismo les estare publicando todos los fuentes de los proyectos que desarrolle en el transcurso de la carrera esperando les sea de utilidad.&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://kriptozcode.blogspot.com/feeds/1503603935595914372/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kriptozcode.blogspot.com/2013/07/proyectos-java.html#comment-form' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/595442523977962160/posts/default/1503603935595914372'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/595442523977962160/posts/default/1503603935595914372'/><link rel='alternate' type='text/html' href='http://kriptozcode.blogspot.com/2013/07/proyectos-java.html' title='Proyectos JAVA'/><author><name>_-_-Luiz-_-_</name><uri>http://www.blogger.com/profile/04002041160161655189</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRZbWEQFxx1kHa5QXnhPeK_COgsquh9hnVnqkGeBk2oOZXghPWrMyFfFqw58uNb-LssIF0SR4jZo8Cw6U55NmkncvOX8tV-cCcIgJW5iZLrtjpJD5wk2JF2PKnoOCvD_M/s220/D_N_Angel_Dark_Plushie.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-595442523977962160.post-6250782471832056480</id><published>2010-07-07T15:03:00.001-07:00</published><updated>2010-07-07T15:10:21.781-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term=".jar"/><category scheme="http://www.blogger.com/atom/ns#" term="Como crear un .jar desde JCreator"/><category scheme="http://www.blogger.com/atom/ns#" term="crear .jar"/><category scheme="http://www.blogger.com/atom/ns#" term="create a jar"/><category scheme="http://www.blogger.com/atom/ns#" term="jar"/><category scheme="http://www.blogger.com/atom/ns#" term="jar file"/><category scheme="http://www.blogger.com/atom/ns#" term="jar java"/><category scheme="http://www.blogger.com/atom/ns#" term="java jar"/><category scheme="http://www.blogger.com/atom/ns#" term="jcreator"/><title type='text'>Como crear un .jar desde JCreator</title><content type='html'>ps aqui les traigo una manera de crear un jar desde jcreator siguiendo los siguientes pasos:&lt;br /&gt;1.- una ves estando en jcreator abrimos la opcion &lt;span style=&quot;font-style:italic;&quot;&gt;configure&lt;/span&gt; y le damos en la opcion &lt;span style=&quot;font-style:italic;&quot;&gt;option&lt;/span&gt;&lt;br /&gt;2.- saldra una ventana en donde, al lado derecho saldran opciones como &quot;editor&quot;, &quot;workspace&quot;, etc. seleccionaremos la opcion que dise &lt;span style=&quot;font-style:italic;&quot;&gt;tools&lt;/span&gt;.&lt;br /&gt;3.- una ves estando en esta opcion daremos clic sobre la opcion &lt;span style=&quot;font-style:italic;&quot;&gt;new&lt;/span&gt;, apareceran algunas opciones la opcion que seleccionaremos sera &lt;span style=&quot;font-style:italic;&quot;&gt;create jar file&lt;/span&gt;. una ves seleccionada daremos en apply, y aceptar y listo nuestro jcreator esta configurado para crear archivos .jar.</content><link rel='replies' type='application/atom+xml' href='http://kriptozcode.blogspot.com/feeds/6250782471832056480/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kriptozcode.blogspot.com/2010/07/como-crear-un-jar-desde-jcreator.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/595442523977962160/posts/default/6250782471832056480'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/595442523977962160/posts/default/6250782471832056480'/><link rel='alternate' type='text/html' href='http://kriptozcode.blogspot.com/2010/07/como-crear-un-jar-desde-jcreator.html' title='Como crear un .jar desde JCreator'/><author><name>_-_-Luiz-_-_</name><uri>http://www.blogger.com/profile/04002041160161655189</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRZbWEQFxx1kHa5QXnhPeK_COgsquh9hnVnqkGeBk2oOZXghPWrMyFfFqw58uNb-LssIF0SR4jZo8Cw6U55NmkncvOX8tV-cCcIgJW5iZLrtjpJD5wk2JF2PKnoOCvD_M/s220/D_N_Angel_Dark_Plushie.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-595442523977962160.post-1255683361518728593</id><published>2010-04-23T14:17:00.000-07:00</published><updated>2010-04-23T14:20:44.982-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="audio y video en java"/><category scheme="http://www.blogger.com/atom/ns#" term="captura de audio java"/><category scheme="http://www.blogger.com/atom/ns#" term="captura de video java"/><category scheme="http://www.blogger.com/atom/ns#" term="capturar video en java."/><category scheme="http://www.blogger.com/atom/ns#" term="video java"/><title type='text'>captura de audio y video web cam</title><content type='html'>proximamente!!! &lt;br /&gt;&lt;br /&gt;se esta desarrollando el codigo para la captura de audio y video atraves de un dispositivo web cam y la captura de audio como la web camcuenta con un microfono incluido este servira para desarrollar la aplicacion proximamente el codigo aqui!!!</content><link rel='replies' type='application/atom+xml' href='http://kriptozcode.blogspot.com/feeds/1255683361518728593/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kriptozcode.blogspot.com/2010/04/captura-de-audio-y-video-web-cam.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/595442523977962160/posts/default/1255683361518728593'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/595442523977962160/posts/default/1255683361518728593'/><link rel='alternate' type='text/html' href='http://kriptozcode.blogspot.com/2010/04/captura-de-audio-y-video-web-cam.html' title='captura de audio y video web cam'/><author><name>_-_-Luiz-_-_</name><uri>http://www.blogger.com/profile/04002041160161655189</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRZbWEQFxx1kHa5QXnhPeK_COgsquh9hnVnqkGeBk2oOZXghPWrMyFfFqw58uNb-LssIF0SR4jZo8Cw6U55NmkncvOX8tV-cCcIgJW5iZLrtjpJD5wk2JF2PKnoOCvD_M/s220/D_N_Angel_Dark_Plushie.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-595442523977962160.post-1144129998468343222</id><published>2010-03-14T18:52:00.000-07:00</published><updated>2010-03-14T18:56:04.677-07:00</updated><title type='text'>DETECCION DE MOVIMIENTO EN JAVA</title><content type='html'>Motion funciona como la mayoría de los servidores de webcam: se lanza el programa, este detecta la webcam y vuelca las imágenes a través de un puerto indicado en el archivo de configuración para que estas sean accesibles a traves de la web.&lt;br /&gt;La particularidad de Motion es que compara al vuelo las imágenes captadas en busca de cambios entre fotogramas consecutivos. Si la diferencia de pixels modificados entre dos fotogramas es superior al “threshold” (umbral) establecido en el archivo de configuración se disparan los eventos programados.&lt;br /&gt;&lt;br /&gt;Normalmente estos eventos suelen consistir en sencillos scripts que ejecutan tareas, del tipo: “Guardar imagen como xxxx.jpg en la carpeta yyy“, “Subir imagen al servidor ftp”, etc… esto solo está sujeto a la imaginación del usuario, las posibilidades son muy extensas: apaga el ordenador si alguien se acerca.&lt;br /&gt;Además, entre otras posibilidades, Motion viene preparado para capturar imágenes de camaras web ajenas, accesibles por internet, de tal manera que podamos “vigilar” lo que muestran otras webcams y programar el ordenador para que actue en consecuencia.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;la creacion de este metodo resulto algo laborioso pero ni imposible espero les sirva!&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://sourceforge.net/projects/motion/files/motion%20-%203.2/3.2.8/motion-3.2.8.tar.gz/download&quot;&gt;descargar&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://kriptozcode.blogspot.com/feeds/1144129998468343222/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kriptozcode.blogspot.com/2010/03/deteccion-de-movimiento-en-java.html#comment-form' title='3 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/595442523977962160/posts/default/1144129998468343222'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/595442523977962160/posts/default/1144129998468343222'/><link rel='alternate' type='text/html' href='http://kriptozcode.blogspot.com/2010/03/deteccion-de-movimiento-en-java.html' title='DETECCION DE MOVIMIENTO EN JAVA'/><author><name>_-_-Luiz-_-_</name><uri>http://www.blogger.com/profile/04002041160161655189</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRZbWEQFxx1kHa5QXnhPeK_COgsquh9hnVnqkGeBk2oOZXghPWrMyFfFqw58uNb-LssIF0SR4jZo8Cw6U55NmkncvOX8tV-cCcIgJW5iZLrtjpJD5wk2JF2PKnoOCvD_M/s220/D_N_Angel_Dark_Plushie.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-595442523977962160.post-475160469919354316</id><published>2009-09-16T12:14:00.000-07:00</published><updated>2009-09-16T12:18:30.548-07:00</updated><title type='text'>Controlar el Acceso a los Miembros de la Clase</title><content type='html'>Uno de los beneficos de las clases es que pueden proteger sus variables y métodos miembros&lt;br /&gt;frente al acceso de otros objetos. ¿Por qué es esto importante? Bien, consideremos esto. Se ha&lt;br /&gt;escrito una clase que representa una petición a una base de datos que contiene toda clase de&lt;br /&gt;información secreta, es decir, registros de empleados o proyectos secretos de la compañia.&lt;br /&gt;&lt;br /&gt;Ciertas informaciones y peticiones contenidas en la clase, las soportadas por los métodos y&lt;br /&gt;variables accesibles públicamente en su objeto son correctas para el consumo de cualquier otro&lt;br /&gt;objeto del sistema. Otras peticiones contenidas en la clase son sólo para el uso personal de la&lt;br /&gt;clase. Estas otras soportadas por la operación de la clase no deberían ser utilizadas por objetos de&lt;br /&gt;otros tipos. Se querría proteger esas variables y métodos personales a nivel del lenguaje y&lt;br /&gt;prohibir el acceso desde objetos de otros tipos.&lt;br /&gt;&lt;br /&gt;En Java se puede utilizar los especificadores de acceso para proteger tanto las variables como los&lt;br /&gt;métodos de la clase cuando se declaran. El lenguaje Java soporta cuatro niveles de acceso para&lt;br /&gt;las variables y métodos miembros: private, protected, public, y, todavía no especificado, acceso&lt;br /&gt;de paquete.&lt;br /&gt;&lt;br /&gt;La siguiente tabla le muestra los niveles de acceso pemitidos por cada especificador:&lt;br /&gt;Especificador clase subclase paquete mundo&lt;br /&gt;private X&lt;br /&gt;protected X X* X&lt;br /&gt;public X X X X&lt;br /&gt;package X X&lt;br /&gt;&lt;br /&gt;La primera columna indica si la propia clase tiene acceso al miembro definido por el especificador&lt;br /&gt;de acceso. La segunda columna indica si las subclases de la clase (sin importar dentro de que&lt;br /&gt;paquete se encuentren estas) tienen acceso a los miembros. La tercera columna indica si las&lt;br /&gt;clases del mismo paquete que la clase (sin importar su parentesco) tienen acceso a los miembros.&lt;br /&gt;La cuarta columna indica si todas las clases tienen acceso a los miembros.&lt;br /&gt;Observa que la intersección entre protected y subclase tiene un &#39;*&#39; - este caso de acceso particular&lt;br /&gt;tiene una explicación en más detalle más adelante.&lt;br /&gt;Echemos un vistazo a cada uno de los niveles de acceso más detalladamente:&lt;br /&gt;&lt;br /&gt;Private&lt;br /&gt;El nivel de acceso más restringido es private. Un miembro privado es accesible sólo para&lt;br /&gt;la clase en la que está definido. Se utiliza este acceso para declarar miembros que sólo&lt;br /&gt;deben ser utilizados por la clase. Esto incluye las variables que contienen informaión&lt;br /&gt;que si se accede a ella desde el exterior podría colocar al objeto en un estado de&lt;br /&gt;inconsistencia, o los métodos que llamados desde el exterior pueden ponen en peligro el&lt;br /&gt;estado del objeto o del programa donde se está ejecutando. Los miembros privados son&lt;br /&gt;como secretos, nunca deben contarsele a nadie.&lt;br /&gt;Para declarar un miembro privado se utiliza la palabra clave private en su declaración.&lt;br /&gt;La clase siguiente contiene una variable miembro y un método privados:&lt;br /&gt;&lt;br /&gt;class Alpha {&lt;br /&gt;private int soyPrivado;&lt;br /&gt;private void metodoPrivado() {&lt;br /&gt;System.out.println(&quot;metodoPrivado&quot;);&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Los objetos del tipo Alpha pueden inspeccionar y modificar la variable soyPrivado y&lt;br /&gt;pueden invocar el método metodoPrivado(), pero los objetos de otros tipos no pueden&lt;br /&gt;acceder. Por ejemplo, la clase Beta definida aquí:&lt;br /&gt;&lt;br /&gt;class Beta {&lt;br /&gt;void metodoAccesor() {&lt;br /&gt;Alpha a = new Alpha();&lt;br /&gt;a.soyPrivado = 10; // ilegal&lt;br /&gt;a.metodoPrivado(); // ilegal&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;no puede acceder a la variable soyPrivado ni al método metodoPrivado() de un&lt;br /&gt;objeto del tipo Alpha porque Beta no es del tipo Alpha.&lt;br /&gt;Si una clase está intentando acceder a una variable miembro a la que no tiene&lt;br /&gt;acceso--el compilador mostrará un mensaje de error similar a este y no compilará su&lt;br /&gt;programa:&lt;br /&gt;Beta.java:9: Variable iamprivate in class Alpha not accessible from class Beta.&lt;br /&gt;a.iamprivate = 10; // ilegal&lt;br /&gt;^&lt;br /&gt;1 error&lt;br /&gt;&lt;br /&gt;Y si un programa intenta acceder a un método al que no tiene acceso, generará un error&lt;br /&gt;de compilación parecido a este:&lt;br /&gt;Beta.java:12: No method matching privateMethod() found in class Alpha.&lt;br /&gt;a.privateMethod(); // ilegal&lt;br /&gt;1 error&lt;br /&gt;&lt;br /&gt;Protected&lt;br /&gt;El siguiente especificador de nivel de acceso es &#39;protected&#39; que permite a la propia clase,&lt;br /&gt;las subclases (con la excepción a la que nos referimos anteriormente), y todas las clases&lt;br /&gt;dentro del mismo paquete que accedan a los miembros. Este nivel de acceso se utiliza&lt;br /&gt;cuando es apropiado para una subclase da la clase tener acceso a los miembros, pero&lt;br /&gt;no las clases no relacionadas. Los miembros protegidos son como secretos familiares -&lt;br /&gt;no importa que toda la familia lo sepa, incluso algunos amigos allegados pero no se&lt;br /&gt;quiere que los extraños lo sepan.&lt;br /&gt;Para declarar un miembro protegido, se utiliza la palabra clave protected. Primero&lt;br /&gt;echemos un vistazo a cómo afecta este especificador de acceso a las clases del mismo&lt;br /&gt;paquete.&lt;br /&gt;Consideremos esta versión de la clase Alpha que ahora se declara para estar incluida en&lt;br /&gt;el paquete Griego y que tiene una variable y un método que son miembros protegidos:&lt;br /&gt;package Griego;&lt;br /&gt;class Alpha {&lt;br /&gt;protected int estoyProtegido;&lt;br /&gt;protected void metodoProtegido() {&lt;br /&gt;System.out.println(&quot;metodoProtegido&quot;);&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;Ahora, supongamos que la clase Gamma, también está declarada como miembro del&lt;br /&gt;paquete Griego (y no es una subclase de Alpha). La Clase Gamma puede acceder&lt;br /&gt;legalmente al miembro estoyProtegido del objeto Alpha y puede llamar legalmente a&lt;br /&gt;su método metodoProtegido():&lt;br /&gt;package Griego;&lt;br /&gt;class Gamma {&lt;br /&gt;void metodoAccesor() {&lt;br /&gt;Alpha a = new Alpha();&lt;br /&gt;a.estoyProtegido = 10; // legal&lt;br /&gt;a.metodoProtegido(); // legal&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;Esto es muy sencillo. Ahora, investiguemos cómo afecta el especificador portected a una&lt;br /&gt;subclase de Alpha.&lt;br /&gt;Introduzcamos una nueva clase, Delta, que desciende de la clase Alpha pero reside en&lt;br /&gt;un paquete diferente - Latin. La clase Delta puede acceder tanto a estoyProtegido&lt;br /&gt;como a metodoProtegido(), pero solo en objetos del tipo Delta o sus subclases. La&lt;br /&gt;clase Delta no puede acceder a estoyProtegido o metodoProtegido() en objetos del&lt;br /&gt;tipo Alpha. metodoAccesor() en el siguiente ejemplo intenta acceder a la variable&lt;br /&gt;miembro estoyProtegido de un objeto del tipo Alpha, que es ilegal, y en un objeto del&lt;br /&gt;tipo Delta que es legal. Similarmente, metodoAccesor() intenta invocar a&lt;br /&gt;metodoProtegido() en un objeto del tipo Alpha, que también es ilegal:&lt;br /&gt;import Griego.*;&lt;br /&gt;package Latin;&lt;br /&gt;class Delta extends Alpha {&lt;br /&gt;void metodoAccesor(Alpha a, Delta d) {&lt;br /&gt;a.estoyProtegido = 10; // ilegal&lt;br /&gt;d.estoyProtegido = 10; // legal&lt;br /&gt;a.metodoProtegido(); // ilegal&lt;br /&gt;d.metodoProtegido(); // legal&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;Si una clase es una subclase o se cuentra en el mismo paquete de la clase con el&lt;br /&gt;miembro protegido, la clase tiene acceso al miembro protegido.&lt;br /&gt;&lt;br /&gt;Public&lt;br /&gt;El especificador de acceso más sencillo es &#39;public&#39;. Todas las clases, en todos los&lt;br /&gt;paquetes tienen acceso a los miembros públicos de la clase. Los miembros públicos se&lt;br /&gt;declaran ólo si su acceso no produce resultados indeseados si un extraño los utiliza.&lt;br /&gt;Aquí no hay secretos familiares; no importa que lo sepa todo el mundo.&lt;br /&gt;Para declarar un miembro público se utiliza la palabra clave public. Por ejemplo,&lt;br /&gt;package Griego;&lt;br /&gt;class Alpha {&lt;br /&gt;public int soyPublico;&lt;br /&gt;public void metodoPublico() {&lt;br /&gt;System.out.println(&quot;metodoPublico&quot;);&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;Reescribamos nuestra clase Beta una vez más y la ponemos en un paquete diferente&lt;br /&gt;que la clase Alpha y nos aseguramos que no están relacionadas (no es una subclase) de&lt;br /&gt;Alpha:&lt;br /&gt;import Griego.*;&lt;br /&gt;package Romano;&lt;br /&gt;class Beta {&lt;br /&gt;void metodoAccesor() {&lt;br /&gt;Alpha a = new Alpha();&lt;br /&gt;a.soyPublico = 10; // legal&lt;br /&gt;a.metodoPublico(); // legal&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;Como se puede ver en el ejemplo anterior, Beta puede inspeccionar y modificar&lt;br /&gt;legalmente la variable soyPublico en la clase Alpha y puede llamar legalmente al&lt;br /&gt;método metodoPublico().&lt;br /&gt;&lt;br /&gt;Acceso de Paquete&lt;br /&gt;Y finalmente, el último nivel de acceso es el que se obtiene si no se especifica ningún&lt;br /&gt;otro nivel de acceso a loss miembros. Este nivel de acceso permite que las clases del&lt;br /&gt;mismo paquete que la clase tengan acceso a los miembros. Este nivel de acceso asume&lt;br /&gt;que las clases del mismo paquete son amigas de confianza. Este nivel de confianza es&lt;br /&gt;como la que extiende a sus mejores amigos y que incluso no la tiene con su familia.&lt;br /&gt;Por ejemplo, esta versión de la clase Alpha declara una variable y un método con acceso&lt;br /&gt;de paquete. Alpha reside en el paquete Griego:&lt;br /&gt;package Griego;&lt;br /&gt;class Alpha {&lt;br /&gt;int estoyEmpaquetado;&lt;br /&gt;void metodoEmpaquetado() {&lt;br /&gt;System.out.println(&quot;metodoEmpaquetado&quot;);&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;La clase Alpha tiene acceso a estoyEmpaquetado y a metodoEmpaquetado().&lt;br /&gt;Además, todas las clases declaradas dentro del mismo paquete como Alpha también&lt;br /&gt;tienen acceso a estoyEmpaquetado y metodoEmpaquetado(). Supongamos que&lt;br /&gt;tanto Alpha como Beta son declaradas como parte del paquete Griego:&lt;br /&gt;package Griego;&lt;br /&gt;class Beta {&lt;br /&gt;void metodoAccesor() {&lt;br /&gt;Alpha a = new Alpha();&lt;br /&gt;a.estoyEmpaquetado = 10; // legal&lt;br /&gt;a.metodoEmpaquetado(); // legal&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;Entonces Beta puede acceder legalmente a estoyEmpaquetado y&lt;br /&gt;metodoEmpaquetado().</content><link rel='replies' type='application/atom+xml' href='http://kriptozcode.blogspot.com/feeds/475160469919354316/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kriptozcode.blogspot.com/2009/09/controlar-el-acceso-los-miembros-de-la.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/595442523977962160/posts/default/475160469919354316'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/595442523977962160/posts/default/475160469919354316'/><link rel='alternate' type='text/html' href='http://kriptozcode.blogspot.com/2009/09/controlar-el-acceso-los-miembros-de-la.html' title='Controlar el Acceso a los Miembros de la Clase'/><author><name>_-_-Luiz-_-_</name><uri>http://www.blogger.com/profile/04002041160161655189</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRZbWEQFxx1kHa5QXnhPeK_COgsquh9hnVnqkGeBk2oOZXghPWrMyFfFqw58uNb-LssIF0SR4jZo8Cw6U55NmkncvOX8tV-cCcIgJW5iZLrtjpJD5wk2JF2PKnoOCvD_M/s220/D_N_Angel_Dark_Plushie.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-595442523977962160.post-6108077871621836807</id><published>2009-09-16T12:10:00.000-07:00</published><updated>2009-09-16T12:14:52.220-07:00</updated><title type='text'>Expresiones</title><content type='html'>Las expresiones realizan el trabajo de un programa Java. Entre otras cosas, las&lt;br /&gt;expresiones se utilizan para calcular y asignar valores a las variables y para&lt;br /&gt;controlar el flujo de un programa Java. El trabajo de una expresión se divide en&lt;br /&gt;dos partes: realizar los cálculos indicados por los elementos de la expresión y&lt;br /&gt;devolver algún valor.&lt;br /&gt;Definición: Una expresión es una serie de variables, operadores y llamadas a&lt;br /&gt;métodos (construida de acuerdo a la sintaxis del lenguaje) que evalúa a un valor&lt;br /&gt;sencillo.&lt;br /&gt;&lt;br /&gt;El tipo del dato devuelto por una expresión depende de los elementos utilizados en&lt;br /&gt;la expresión. La expresión count++ devuelve un entero porque ++ devuelve un&lt;br /&gt;valor del mismo tipo que su operando y count es un entero. Otras expresiones&lt;br /&gt;devuelven valores booleanos, cadenas, etc...&lt;br /&gt;Una expresión de llamada a un método devuelve el valor del método; así el tipo de&lt;br /&gt;dato de una expresión de llamada a un método es el mismo tipo de dato que el&lt;br /&gt;valor de retorno del método. El método System.in.read() se ha declarado como&lt;br /&gt;un entero, por lo tanto, la expresión System.in.read() devuelve un entero.&lt;br /&gt;La segunda expresión contenida en la sentencia System.in.read() != -1 utiliza el&lt;br /&gt;operador !=. Recuerda que este operador comprueba si los dos operandos son&lt;br /&gt;distintos. En esta sentencia los operandos son System.in.read() y -1.&lt;br /&gt;System.in.read() es un operando válido para != porque devuelve un entero. Así&lt;br /&gt;System.in.read() != -1 compara dos enteros, el valor devuelto por&lt;br /&gt;System.in.read() y -1. El valor devuelto por != es true o false dependiendo de&lt;br /&gt;la salida de la comparación.&lt;br /&gt;Como has podido ver, Java te permite construir expresiones compuestas y&lt;br /&gt;sentencias a partir de varias expresiones pequeñas siempre que los tipos de datos&lt;br /&gt;requeridos por una parte de la expresión correspondan con los tipos de datos de la&lt;br /&gt;otra. Tambíen habrás podido concluir del ejemplo anterior, el orden en que se&lt;br /&gt;evalúan los componentes de una expresión compuesta.&lt;br /&gt;&lt;br /&gt;Por ejemplo, toma la siguiente expresión compuesta:&lt;br /&gt;x * y * z&lt;br /&gt;En este ejemplo particular, no importa el orden en que se evalúe la expresión&lt;br /&gt;porque el resultado de la multiplicación es independiente del orden. La salida es&lt;br /&gt;siempre la misma sin importar el orden en que se apliquen las multiplicaciones. Sin&lt;br /&gt;embargo, esto no es cierto para todas las expresiones. Por ejemplo, esta expresión&lt;br /&gt;obtiene un resultado diferente dependiendo de si se realiza primero la suma o la&lt;br /&gt;división:&lt;br /&gt;x + y / 100&lt;br /&gt;Puedes decirle directamente al compilador de Java cómo quieres que se evalúe una&lt;br /&gt;expresión utilizando los paréntesis ( y ). Por ejemplo, para aclarar la sentencia&lt;br /&gt;anterior, se podría escribir: (x + y)/ 100.&lt;br /&gt;Si no le dices explícitamente al compilador el orden en el que quieres que se&lt;br /&gt;realicen las operaciones, él decide basándose en la precedencia asignada a los&lt;br /&gt;operadores y otros elementos que se utilizan dentro de una expresión.&lt;br /&gt;Los operadores con una precedencia más alta se evalúan primero. Por ejemplo. el&lt;br /&gt;operador división tiene una precedencia mayor que el operador suma, por eso, en&lt;br /&gt;la expresión anterior x + y / 100, el compilador evaluará primero y / 100. Así&lt;br /&gt;x + y / 100&lt;br /&gt;es equivalente a:&lt;br /&gt;x + (y / 100)&lt;br /&gt;Para hacer que tu código sea más fácil de leer y de mantener deberías explicar e&lt;br /&gt;indicar con parétesis los operadores que se deben evaluar primero.&lt;br /&gt;La tabla siguiente muestra la precedencia asignada a los operadores de Java. Los&lt;br /&gt;operadores se han listado por orden de precedencia de mayor a menor. Los&lt;br /&gt;operadores con mayor precedencia se evalúan antes que los operadores con un&lt;br /&gt;precedencia relativamente menor. Lo operadores con la misma precedencia se&lt;br /&gt;evalúan de izquierda a derecha.&lt;br /&gt;&lt;br /&gt;Precedencia de Operadores en Java&lt;br /&gt;operadores sufijo [] . (params) expr++ expr--&lt;br /&gt;operadores unarios ++expr --expr +expr -expr ~ !&lt;br /&gt;creación o tipo new (type)expr&lt;br /&gt;multiplicadores * / %&lt;br /&gt;suma/resta + -&lt;br /&gt;desplazamiento &lt;&lt; &gt;&gt; &gt;&gt;&gt;&lt;br /&gt;relacionales &lt; &gt; &lt;= &gt;= instanceof&lt;br /&gt;igualdad == !=&lt;br /&gt;bitwise AND &amp;amp;&lt;br /&gt;bitwise exclusive OR ^&lt;br /&gt;bitwise inclusive OR |&lt;br /&gt;AND lógico &amp;amp;&amp;amp;&lt;br /&gt;OR lógico ||&lt;br /&gt;condicional ? :&lt;br /&gt;asignación = += -= *= /= %= ^= &amp;amp;= |= &lt;&lt;=&lt;br /&gt;&gt;&gt;= &gt;&gt;&gt;=</content><link rel='replies' type='application/atom+xml' href='http://kriptozcode.blogspot.com/feeds/6108077871621836807/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kriptozcode.blogspot.com/2009/09/expresiones.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/595442523977962160/posts/default/6108077871621836807'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/595442523977962160/posts/default/6108077871621836807'/><link rel='alternate' type='text/html' href='http://kriptozcode.blogspot.com/2009/09/expresiones.html' title='Expresiones'/><author><name>_-_-Luiz-_-_</name><uri>http://www.blogger.com/profile/04002041160161655189</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRZbWEQFxx1kHa5QXnhPeK_COgsquh9hnVnqkGeBk2oOZXghPWrMyFfFqw58uNb-LssIF0SR4jZo8Cw6U55NmkncvOX8tV-cCcIgJW5iZLrtjpJD5wk2JF2PKnoOCvD_M/s220/D_N_Angel_Dark_Plushie.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-595442523977962160.post-5344758569860562257</id><published>2009-09-16T12:09:00.000-07:00</published><updated>2009-09-16T12:10:30.540-07:00</updated><title type='text'>Arrays y Cadenas</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;Al igual que otros lenguajes de programación, Java permite juntar y manejar múltiples&lt;br /&gt;valores a través de un objeto array (matriz). También se pueden manejar datos&lt;br /&gt;compuestos de múltiples caracteres utilizando el objeto String (cadena).&lt;br /&gt;Arrays&lt;br /&gt;Esta sección te enseñará todo lo que necesitas para crear y utilizar arrays en&lt;br /&gt;tus programas Java.&lt;br /&gt;Como otras variables, antes de poder utilizar un array primero se debe&lt;br /&gt;declarar. De nuevo, al igual que otras variables, la declaración de un array&lt;br /&gt;tiene dos componentes primarios: el tipo del array y su nombre. Un tipo de&lt;br /&gt;array incluye el tipo de dato de los elementos que va contener el array. Por&lt;br /&gt;ejemplo, el tipo de dato para un array que sólo va a contener elementos&lt;br /&gt;enteros es un array de enteros. No puede existir un array de tipo de datos&lt;br /&gt;genérico en el que el tipo de sus elementos esté indefinido cuando se declara&lt;br /&gt;el array. Aquí tienes la declaración de un array de enteros:&lt;br /&gt;int[] arrayDeEnteros;&lt;br /&gt;La parte int[] de la declaración indica que arrayDeEnteros es un array de&lt;br /&gt;enteros. La declaración no asigna ninguna memoria para contener los&lt;br /&gt;elementos del array.&lt;br /&gt;Si se intenta asignar un valor o acceder a cualquier elemento de&lt;br /&gt;arrayDeEnteros antes de haber asignado la memoria para él, el compilador&lt;br /&gt;dará un error como este y no compilará el programa:&lt;br /&gt;testing.java:64: Variable arraydeenteros may not have been initialized.&lt;br /&gt;Para asignar memoria a los elementos de un array, primero se debe&lt;br /&gt;ejemplarizar el array. Se puede hacer esto utilizando el operador new de Java.&lt;br /&gt;(Realmente, los pasos que se deben seguir para crear un array son similares a&lt;br /&gt;los se deben seguir para crear un objeto de una clase: declaración,&lt;br /&gt;ejemplarización e inicialización.&lt;br /&gt;La siguiente sentencia asigna la suficiente memoria para que arrayDeEnteros&lt;br /&gt;pueda contener diez enteros.&lt;br /&gt;int[] arraydeenteros = new int[10]&lt;br /&gt;En general, cuando se crea un array, se utiliza el operador new, más el tipo&lt;br /&gt;de dato de los elementos del array, más el número de elementos deseados&lt;br /&gt;encerrado entre cochetes cuadrados (&#39;[&#39; y &#39;]&#39;).&lt;br /&gt;TipodeElemento[] NombredeArray = new TipodeElementos[tamanoArray]&lt;br /&gt;Ahora que se ha asignado memoria para un array ya se pueden asignar&lt;br /&gt;valores a los elemetos y recuperar esos valores:&lt;br /&gt;for (int j = 0; j &lt; arrayDeEnteros.length; j ++) {&lt;br /&gt;arrayDeEnteros[j] = j;&lt;br /&gt;System.out.println(&quot;[j] = &quot; + arrayDeEnteros[j]);&lt;br /&gt;}&lt;br /&gt;Como se puede ver en el ejemplo anterior, para referirse a un elemento del&lt;br /&gt;array, se añade corchetes cuadrados al nombre del array. Entre los corchetes&lt;br /&gt;caudrados se indica (bien con una variable o con una expresión) el índice del&lt;br /&gt;elemento al que se quiere acceder. Observa que en Java, el índice del array&lt;br /&gt;empieza en 0 y termina en la longitud del array menos uno.&lt;br /&gt;Hay otro elemento interesante en el pequeño ejemplo anterior. El bucle for&lt;br /&gt;itera sobre cada elemento de arrayDeEnteros asignándole valores e&lt;br /&gt;imprimiendo esos valores. Observa el uso de arrayDeEnteros.length para&lt;br /&gt;obtener el tamaño real del array. length es una propiedad proporcionada para&lt;br /&gt;todos los arrays de Java.&lt;br /&gt;Los arrays pueden contener cualquier tipo de dato legal en Java incluyendo los&lt;br /&gt;tipos de referencia como son los objetos u otros array. Por ejemplo, el&lt;br /&gt;siguiente ejemplo declara un array que puede contener diez objetos String.&lt;br /&gt;String[] arrayDeStrings = new String[10];&lt;br /&gt;Los elementos en este array son del tipo referencia, esto es, cada elemento&lt;br /&gt;contiene una referencia a un objeto String. En este punto, se ha asignado&lt;br /&gt;suficiente memoria para contener las referencias a los Strings, pero no se ha&lt;br /&gt;asignado memoria para los propios strings. Si se intenta acceder a uno de los&lt;br /&gt;elementos de arraydeStrings obtendrá una excepción &#39;NullPointerException&#39;&lt;br /&gt;porque el array está vacio y no contiene ni cadenas ni objetos String. Se debe&lt;br /&gt;asignar memoria de forma separada para los objetos String:&lt;br /&gt;for (int i = 0; i &lt; arraydeStrings.length; i ++) {&lt;br /&gt;arraydeStrings[i] = new String(&quot;Hello &quot; + i);&lt;br /&gt;}&lt;br /&gt;Strings&lt;br /&gt;Una secuencia de datos del tipo carácter se llama un string (cadena) y en el&lt;br /&gt;entorno Java está implementada por la clase String (un miembro del paquete&lt;br /&gt;java.lang).&lt;br /&gt;String[] args;&lt;br /&gt;Este código declara explícitamente un array, llamado args, que contiene&lt;br /&gt;objetos del tipo String. Los corchetes vacios indican que la longitud del array&lt;br /&gt;no se conoce en el momento de la compilación, porque el array se pasa en el&lt;br /&gt;momento de la ejecución.&lt;br /&gt;El segundo uso de String es el uso de cadenas literales (una cadena de&lt;br /&gt;caracteres entre comillas &quot; y &quot;):&lt;br /&gt;&quot;Hola mundo!&quot;&lt;br /&gt;El compilador asigna implicitamente espacio para un objeto String cuando&lt;br /&gt;encuentra una cadena literal.&lt;br /&gt;Los objetos String son inmutables - es decir, no se pueden modificar una vez&lt;br /&gt;que han sido creados. El paquete java.lang proporciona una clase diferente,&lt;br /&gt;StringBuffer, que se podrá utilizar para crear y manipular caracteres al vuelo.&lt;br /&gt;Concatenación de Cadenas&lt;br /&gt;Java permite concatenar cadenas facilmente utilizando el operador&lt;br /&gt;+. El siguiente fragmento de código concatena tres cadenas para&lt;br /&gt;producir su salida:&lt;br /&gt;&quot;La entrada tiene &quot; + contador + &quot; caracteres.&quot;&lt;br /&gt;Dos de las cadenas concatenadas son cadenas literales: &quot;La&lt;br /&gt;entrada tiene &quot; y &quot; caracteres.&quot;. La tercera cadena - la del medioes&lt;br /&gt;realmente un entero que primero se convierte a cadena y luego&lt;br /&gt;se concatena con las otras.&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kriptozcode.blogspot.com/feeds/5344758569860562257/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kriptozcode.blogspot.com/2009/09/arrays-y-cadenas.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/595442523977962160/posts/default/5344758569860562257'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/595442523977962160/posts/default/5344758569860562257'/><link rel='alternate' type='text/html' href='http://kriptozcode.blogspot.com/2009/09/arrays-y-cadenas.html' title='Arrays y Cadenas'/><author><name>_-_-Luiz-_-_</name><uri>http://www.blogger.com/profile/04002041160161655189</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRZbWEQFxx1kHa5QXnhPeK_COgsquh9hnVnqkGeBk2oOZXghPWrMyFfFqw58uNb-LssIF0SR4jZo8Cw6U55NmkncvOX8tV-cCcIgJW5iZLrtjpJD5wk2JF2PKnoOCvD_M/s220/D_N_Angel_Dark_Plushie.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-595442523977962160.post-9057558342883364397</id><published>2009-09-16T12:06:00.000-07:00</published><updated>2009-09-16T12:09:01.550-07:00</updated><title type='text'>Sentencias de Control de Flujo</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;Las sentencias de control de flujo determinan el orden en que se ejecutarán las otras sentencias&lt;br /&gt;dentro del programa. El lenguaje Java soporta varias sentencias de control de flujo, incluyendo:&lt;br /&gt;Sentencias palabras clave&lt;br /&gt;toma de decisiones if-else, switch-case&lt;br /&gt;bucles for, while, do-while&lt;br /&gt;excepciones try-catch-finally, throw&lt;br /&gt;miscelaneas break, continue, label:, return&lt;br /&gt;Nota: Aunque goto es una palabra reservada, actualmente el lenguaje Java no la soporta.&lt;br /&gt;Podemos utilizar las rupturas etiquetadas en su lugar.&lt;br /&gt;La sentencia if-else&lt;br /&gt;La sentencia if-else de java proporciona a los programas la posibilidad de ejecutar&lt;br /&gt;selectivamente otras sentencias basándose en algún criterio. Por ejemplo, supon que&lt;br /&gt;tu programa imprime información de depurado basándose en el valor de una variable&lt;br /&gt;booleana llamada DEBUG. Si DEBUG fuera verdadera true, el programa imprimiría la&lt;br /&gt;información de depurado, como por ejemplo, el valor de una variable como x. Si&lt;br /&gt;DEBUG es false el programa procederá normalmente. Un segmento de código que&lt;br /&gt;implemente esto se podría parecer a este:&lt;br /&gt;. . .&lt;br /&gt;if (DEBUG)&lt;br /&gt;System.out.println(&quot;DEBUG: x = &quot; + x);&lt;br /&gt;. . .&lt;br /&gt;Esta es la versión más sencilla de la sentencia if: la sentencia gobernada por if se&lt;br /&gt;ejecuta si alguna codición es verdadera. Generalmente, la forma sencilla de if se puede&lt;br /&gt;escribir así:&lt;br /&gt;if (expresión)&lt;br /&gt;sentencia&lt;br /&gt;Pero, ¿y si quieres ejecutar un juego diferente de sentencias si la expresión es falsa?&lt;br /&gt;Bien, puedes utilizar la sentencia else. Echemos un vistazo a otro ejemplo. Supon que&lt;br /&gt;tu programa necesita realizar diferentes acciones dependiendo de que el usuario pulse&lt;br /&gt;el botón OK o el botón Cancel en un ventana de alarma. Se podría hacer esto&lt;br /&gt;utilizando una sentencia if:&lt;br /&gt;. . .&lt;br /&gt;// Respuesta dependiente del botoón que haya pulsado el usuario&lt;br /&gt;// OK o Cancel&lt;br /&gt;. . .&lt;br /&gt;if (respuesta == OK) {&lt;br /&gt;. . .&lt;br /&gt;// Código para la acción OK&lt;br /&gt;. . .&lt;br /&gt;} else {&lt;br /&gt;. . .&lt;br /&gt;// código para la acción Cancel&lt;br /&gt;. . .&lt;br /&gt;}&lt;br /&gt;Este uso particular de la sentencia else es la forma de capturarlo todo. Existe otra&lt;br /&gt;forma de la sentecia else, else if que ejecuta una sentencia basada en otra expresión.&lt;br /&gt;Por ejemplo, supon que has escrito un programa que asigna notas basadas en la&lt;br /&gt;puntuación de un examen, un Sobresaliente para una puntuación del 90% o superior,&lt;br /&gt;un Notable para el 80% o superior y demás. odrías utilizar una sentencia if con una&lt;br /&gt;serie de comparaciones else if y una setencia else para escribir este código:&lt;br /&gt;int puntuacion;&lt;br /&gt;String nota;&lt;br /&gt;if (puntuacion &gt;= 90) {&lt;br /&gt;nota = &quot;Sobresaliente&quot;;&lt;br /&gt;} else if (puntuacion &gt;= 80) {&lt;br /&gt;nota = &quot;Notable&quot;;&lt;br /&gt;} else if (puntuacion &gt;= 70) {&lt;br /&gt;nota = &quot;Bien&quot;;&lt;br /&gt;} else if (puntuacion &gt;= 60) {&lt;br /&gt;nota = &quot;Suficiente&quot;;&lt;br /&gt;} else {&lt;br /&gt;nota = &quot;Insuficiente&quot;;&lt;br /&gt;}&lt;br /&gt;Una sentencia if puede tener cualquier número de sentencias de acompañamiento else&lt;br /&gt;if. Podrías haber observado que algunos valores de puntuacion pueden satisfacer más&lt;br /&gt;una de las expresiones que componen la sentencia if. Por ejemplo, una puntuación de&lt;br /&gt;76 podría evaluarse como true para dos expresiones de esta sentencia:puntuacion&lt;br /&gt;&gt;= 70 y puntuacion &gt;= 60. Sin embargo, en el momento de ejecución, el sistema&lt;br /&gt;procesa una sentencia if compuesta como una sóla; una vez que se ha satisfecho una&lt;br /&gt;condición (76 &gt;= 70), se ejecuta la sentencia apropiada (nota = &quot;Bien&quot;;), y el control&lt;br /&gt;sale fuera de la sentencia if sin evaluar las condiciones restantes.&lt;br /&gt;La sentencia switch&lt;br /&gt;La sentencia switch se utiliza para realizar sentencias condicionalmente basadas en&lt;br /&gt;alguna expresión. Por ejemplo, supon que tu programa contiene un entero llamado&lt;br /&gt;mes cuyo valor indica el mes en alguna fecha. Supon que también quieres mostrar el&lt;br /&gt;nombre del mes basándose en su número entero equivalente. Podrías utilizar la&lt;br /&gt;sentencia switch de Java para realizar esta tarea:&lt;br /&gt;int mes;&lt;br /&gt;. . .&lt;br /&gt;switch (mes) {&lt;br /&gt;case 1: System.out.println(&quot;Enero&quot;); break;&lt;br /&gt;case 2: System.out.println(&quot;Febrero&quot;); break;&lt;br /&gt;case 3: System.out.println(&quot;Marzo&quot;); break;&lt;br /&gt;case 4: System.out.println(&quot;Abril&quot;); break;&lt;br /&gt;case 5: System.out.println(&quot;May0&quot;); break;&lt;br /&gt;case 6: System.out.println(&quot;Junio&quot;); break;&lt;br /&gt;case 7: System.out.println(&quot;Julio&quot;); break;&lt;br /&gt;case 8: System.out.println(&quot;Agosto&quot;); break;&lt;br /&gt;case 9: System.out.println(&quot;Septiembre&quot;); break;&lt;br /&gt;case 10: System.out.println(&quot;Octubre&quot;); break;&lt;br /&gt;case 11: System.out.println(&quot;Noviembre&quot;); break;&lt;br /&gt;case 12: System.out.println(&quot;Diciembre&quot;); break;&lt;br /&gt;}&lt;br /&gt;La sentencia switch evalúa su expresión, en este caso el valor de mes, y ejecuta la&lt;br /&gt;sentencia case apropiada. Decidir cuando utilizar las sentencias if o switch dependen&lt;br /&gt;del juicio personal. Puedes decidir cual utilizar basándose en la buena lectura del&lt;br /&gt;código o en otros factores.&lt;br /&gt;Cada sentencia case debe ser única y el valor proporcionado a cada sentencia case&lt;br /&gt;debe ser del mismo tipo que el tipo de dato devuelto por la expresión proporcionada a&lt;br /&gt;la sentencia switch.&lt;br /&gt;Otro punto de interes en la sentencia switch son las sentencias break después de&lt;br /&gt;cada case. La sentencia break hace que el control salga de la sentencia switch y&lt;br /&gt;continúe con la siguiente línea. La sentencia break es necesaria porque las sentencias&lt;br /&gt;case se siguen ejecutando hacia abajo. Esto es, sin un break explícito, el flujo de&lt;br /&gt;control seguiría secuencialmente a través de las sentencias case siguientes. En el&lt;br /&gt;ejemplo anterior, no se quiere que el flujo vaya de una sentencia case a otra, por eso&lt;br /&gt;se han tenido que poner las sentencias break. Sin embargo, hay ciertos escenario en&lt;br /&gt;los que querrás que el control proceda secuencialmente a través de las sentencias&lt;br /&gt;case. Como este código que calcula el número de días de un mes de acuerdo con el&lt;br /&gt;ritmico refrán que dice &quot;Treinta tiene Septiembre...&quot;.&lt;br /&gt;int mes;&lt;br /&gt;int numeroDias;&lt;br /&gt;. . .&lt;br /&gt;switch (mes) {&lt;br /&gt;case 1:&lt;br /&gt;case 3:&lt;br /&gt;case 5:&lt;br /&gt;case 7:&lt;br /&gt;case 8:&lt;br /&gt;case 10:&lt;br /&gt;case 12:&lt;br /&gt;numeroDias = 31;&lt;br /&gt;break;&lt;br /&gt;case 4:&lt;br /&gt;case 6:&lt;br /&gt;case 9:&lt;br /&gt;case 11:&lt;br /&gt;numeroDias = 30;&lt;br /&gt;break;&lt;br /&gt;case 2:&lt;br /&gt;if ( ((ano % 4 == 0) &amp;amp;&amp;amp; !(ano % 100 == 0)) || ano % 400 == 0) )&lt;br /&gt;numeroDias = 29;&lt;br /&gt;else&lt;br /&gt;numeroDias = 28;&lt;br /&gt;break;&lt;br /&gt;}&lt;br /&gt;Finalmente, puede utilizar la sentencia default al final de la sentencia switch para&lt;br /&gt;manejar los valores que no se han manejado explícitamente por una de las sentencias&lt;br /&gt;case.&lt;br /&gt;int mes;&lt;br /&gt;. . .&lt;br /&gt;switch (mes) {&lt;br /&gt;case 1: System.out.println(&quot;Enero&quot;); break;&lt;br /&gt;case 2: System.out.println(&quot;Febrero&quot;); break;&lt;br /&gt;case 3: System.out.println(&quot;Marzo&quot;); break;&lt;br /&gt;case 4: System.out.println(&quot;Abril&quot;); break;&lt;br /&gt;case 5: System.out.println(&quot;Mayo&quot;); break;&lt;br /&gt;case 6: System.out.println(&quot;Junio&quot;); break;&lt;br /&gt;case 7: System.out.println(&quot;Julio&quot;); break;&lt;br /&gt;case 8: System.out.println(&quot;Agosto&quot;); break;&lt;br /&gt;case 9: System.out.println(&quot;Septiembre&quot;); break;&lt;br /&gt;case 10: System.out.println(&quot;Octubre&quot;); break;&lt;br /&gt;case 11: System.out.println(&quot;Noviembre&quot;); break;&lt;br /&gt;case 12: System.out.println(&quot;Diciembre&quot;); break;&lt;br /&gt;default: System.out.println(&quot;Ee, no es un mes válido!&quot;);&lt;br /&gt;break;&lt;br /&gt;}&lt;br /&gt;Sentencias de Bucle&lt;br /&gt;Generalmente hablando, una sentencia while realiza una acción mientras se cumpla&lt;br /&gt;una cierta condición. La sintaxis general de la sentencia while es:&lt;br /&gt;while (expresión)&lt;br /&gt;sentencia&lt;br /&gt;Esto es, mientras la expresión sea verdadera, ejecutará la sentencia.&lt;br /&gt;sentencia puede ser una sóla sentencia o puede ser un bloque de sentencias. Un&lt;br /&gt;bloque de sentencias es un juego de sentencias legales de java contenidas dentro de&lt;br /&gt;corchetes(&#39;{&#39;y &#39;}&#39;). Por ejemplo, supon que además de incrementar contador dentro&lt;br /&gt;de un bucle while también quieres imprimir el contador cada vez que se lea un&lt;br /&gt;carácter. Podrías escribir esto en su lugar:&lt;br /&gt;. . .&lt;br /&gt;while (System.in.read() != -1) {&lt;br /&gt;contador++;&lt;br /&gt;System.out.println(&quot;Se ha leido un el carácter = &quot; + contador);&lt;br /&gt;}&lt;br /&gt;. . .&lt;br /&gt;Por convención el corchete abierto &#39;{&#39; se coloca al final de la misma línea donde se&lt;br /&gt;encuentra la sentencia while y el corchete cerrado &#39;}&#39; empieza una nueva línea&lt;br /&gt;indentada a la línea en la que se encuentra el while.&lt;br /&gt;Además de while Java tiene otros dos constructores de bucles que puedes utilizar en&lt;br /&gt;tus programas: el bucle for y el bucle do-while.&lt;br /&gt;Primero el bucle for. Puedes utilizar este bucle cuando conozcas los límites del bucle&lt;br /&gt;(su instrucción de inicialización, su criterio de terminación y su instrucción de&lt;br /&gt;incremento). Por ejemplo, el bucle for se utiliza frecuentemente para iterar sobre los&lt;br /&gt;elementos de un array, o los caracteres de una cadena.&lt;br /&gt;// a es un array de cualquier tipo&lt;br /&gt;. . .&lt;br /&gt;int i;&lt;br /&gt;int length = a.length;&lt;br /&gt;for (i = 0; i &lt; length; i++) {&lt;br /&gt;. . .&lt;br /&gt;// hace algo en el elemento i del array a&lt;br /&gt;. . .&lt;br /&gt;}&lt;br /&gt;Si sabes cuando estas escribiendo el programa que quieres empezar en el inicio del&lt;br /&gt;array, parar al final y utilizar cada uno de los elementos. Entonces la sentencia for es&lt;br /&gt;una buena elección. La forma general del bucle for puede expresarse asi:&lt;br /&gt;for (inicialización; terminación; incremento)&lt;br /&gt;sentencias&lt;br /&gt;inicialización es la sentencia que inicializa el bucle -- se ejecuta una vez al iniciar el&lt;br /&gt;bucle.&lt;br /&gt;terminación es una sentecia que determina cuando se termina el bucle. Esta expresión&lt;br /&gt;se evalúa al principio de cada iteracción en el bucle. Cuando la expreión se evalúa a&lt;br /&gt;false el bucle se termina.&lt;br /&gt;Finalmente, incremento es una expresión que se invoca en cada interacción del bucle.&lt;br /&gt;Cualquiera (o todos) de estos componentes puden ser una sentencia vacía (un punto y&lt;br /&gt;coma).&lt;br /&gt;Java proporciona otro bucle, el bucle do-while,que es similar al bucle while que se&lt;br /&gt;vió al principio, excepto en que la expresión se avalú al final del bucle:&lt;br /&gt;do {&lt;br /&gt;sentencias&lt;br /&gt;} while (Expresión Booleana);&lt;br /&gt;La sentencia do-while se usa muy poco en la construcción de bucles pero tiene sus&lt;br /&gt;usos. Por ejemplo, es conveniente utilizar la sentencia do-while cuando el bucle debe&lt;br /&gt;ejecutarse al menos una vez. Por ejemplo, para leer información de un fichero,&lt;br /&gt;sabemos que al menos debe leer un carácter:&lt;br /&gt;int c;&lt;br /&gt;InputStream in;&lt;br /&gt;. . .&lt;br /&gt;do {&lt;br /&gt;c = in.read();&lt;br /&gt;. . .&lt;br /&gt;} while (c != -1);&lt;br /&gt;Sentencias de Manejo de Excepciones&lt;br /&gt;Cuando ocurre un error dentro de un método Java, el método puede lanzar una&lt;br /&gt;excepción para indicar a su llamador que ha ocurrido un error y que el error está&lt;br /&gt;utilizando la sentencia throw. El método llamador puede utilizar las sentencias try,&lt;br /&gt;catch, y finally para capturar y manejar la excepción. Puedes ver Manejar Errores&lt;br /&gt;Utilizando Excepciones para obtener más información sobre el lanzamiento y manejo&lt;br /&gt;de excepciones.&lt;br /&gt;Sentencias de Ruptura&lt;br /&gt;Ya has visto la sentencia break en acción dentro de la sentencia switch&lt;br /&gt;anteriormente. Como se observó anteriormente, la sentencia break hace que el&lt;br /&gt;control del flujo salte a la sentencia siguiente a la actual.&lt;br /&gt;Hay otra forma de break que hace que el flujo de control salte a una sentencia&lt;br /&gt;etiquetada. Se puede etiquetar una sentencia utilizando un identificador legal de Java&lt;br /&gt;(la etiqueta) seguido por dos puntos (:) antes de la sentencia:&lt;br /&gt;SaltaAqui: algunaSentenciaJava&lt;br /&gt;Para saltar a la sentencia etiquetada utilice esta forma de la sentencia break.&lt;br /&gt;break SaltaAqui;&lt;br /&gt;Las rupturas etiquetadas son una alternativa a la sentencia goto que no está&lt;br /&gt;soportada por el lenguaje Java.&lt;br /&gt;Se puede utiliza la sentencia continue dentro de un bucle para saltar de la sentencia&lt;br /&gt;actual hacia el principio del bucle o a una sentencia etiquetada. Considera esta&lt;br /&gt;implementación del método indexOf() de la clase String que utiliza la forma de&lt;br /&gt;continue que continúa en una sentencia etiquetada:&lt;br /&gt;public int indexOf(String str, int fromIndex) {&lt;br /&gt;char[] v1 = value;&lt;br /&gt;char[] v2 = str.value;&lt;br /&gt;int max = offset + (count - str.count);&lt;br /&gt;test:&lt;br /&gt;for (int i = offset + ((fromIndex &lt; 0) ? 0 : fromIndex); i &lt;= max ; i++) {&lt;br /&gt;int n = str.count;&lt;br /&gt;int j = i;&lt;br /&gt;int k = str.offset;&lt;br /&gt;while (n-- != 0) {&lt;br /&gt;if (v1[j++] != v2[k++]) {&lt;br /&gt;continue test;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;return i - offset;&lt;br /&gt;}&lt;br /&gt;return -1;&lt;br /&gt;}&lt;br /&gt;Nota: Sólo se puede llamar a la sentencia continue desde dentro de un bucle.&lt;br /&gt;Y finalmente la sentencia return. Esta sentencia se utiliza para salir del método actual&lt;br /&gt;y volver a la sentencia siguiente a la que originó la llamada en el método original.&lt;br /&gt;Existen dos formas de return: una que devuelve un valor y otra que no lo hace. Para&lt;br /&gt;devolver un valor, simplemente se pone el valor (o una expresión que calcule el valor)&lt;br /&gt;detrás de la palabra return:&lt;br /&gt;return ++count;&lt;br /&gt;El valor devuelto por return debe corresponder con el tipo del valor de retorno de la&lt;br /&gt;declaración del método.&lt;br /&gt;Cuando un método se declara como void utiliza la forma de return que no devuelve&lt;br /&gt;ningún valor:&lt;br /&gt;return;&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kriptozcode.blogspot.com/feeds/9057558342883364397/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kriptozcode.blogspot.com/2009/09/sentencias-de-control-de-flujo.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/595442523977962160/posts/default/9057558342883364397'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/595442523977962160/posts/default/9057558342883364397'/><link rel='alternate' type='text/html' href='http://kriptozcode.blogspot.com/2009/09/sentencias-de-control-de-flujo.html' title='Sentencias de Control de Flujo'/><author><name>_-_-Luiz-_-_</name><uri>http://www.blogger.com/profile/04002041160161655189</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRZbWEQFxx1kHa5QXnhPeK_COgsquh9hnVnqkGeBk2oOZXghPWrMyFfFqw58uNb-LssIF0SR4jZo8Cw6U55NmkncvOX8tV-cCcIgJW5iZLrtjpJD5wk2JF2PKnoOCvD_M/s220/D_N_Angel_Dark_Plushie.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-595442523977962160.post-3918780030255974425</id><published>2009-09-16T12:05:00.000-07:00</published><updated>2018-01-10T17:04:47.667-08:00</updated><title type='text'>Implementación de Métodos</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;
Similarmente a la implementación de una clase, la implementación de un método consiste en dos&lt;br /&gt;
partes, la declaración y el cuerpo del método.&lt;br /&gt;
declaracióndeMétodo {&lt;br /&gt;
cuerpodeMétodo&lt;br /&gt;
}&lt;br /&gt;
La Declaración de Método&lt;br /&gt;
Una declaración de método proporciona mucha información sobre el método al&lt;br /&gt;
compilador, al sistema en tiempo de ejecución y a otras clases y objetos. Junto con el&lt;br /&gt;
nombre del método, la declaración lleva información como el tipo de retorno del&lt;br /&gt;
método, el número y el tipo de los argumentos necesarios, y qué otras clases y objetos&lt;br /&gt;
pueden llamar al método.&lt;br /&gt;
Los únicos elementos necesarios una declaración de método son el nombre y el tipo de&lt;br /&gt;
retorno del método. Por ejemplo, el código siguiente declara un método llamado&lt;br /&gt;
estaVacio() en la clase Pila que devuelve un valor booleano (true o false):&lt;br /&gt;
class Pila {&lt;br /&gt;
. . .&lt;br /&gt;
boolean estaVacio() {&lt;br /&gt;
. . .&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
Devolver un Valor desde un Método&lt;br /&gt;
Java necesita que un método declare el tipo de dato del valor que devuelve. Si un&lt;br /&gt;
método no devuelve ningún valor, debe ser declarado para devolver void (nulo).&lt;br /&gt;
Los métodos pueden devolver tipos de datos primitivos o tipos de datos de referencia. El&lt;br /&gt;
método estaVacio() de la clase Pila devuelve un tipo de dato primitivo, un valor&lt;br /&gt;
booleano:&lt;br /&gt;
class Pila {&lt;br /&gt;
static final int PILA_VACIA = -1;&lt;br /&gt;
Object[] stackelements;&lt;br /&gt;
int topelement = PILA_VACIA;&lt;br /&gt;
. . .&lt;br /&gt;
boolean estaVacio() {&lt;br /&gt;
if (topelement == PILA_VACIA)&lt;br /&gt;
return true;&lt;br /&gt;
else&lt;br /&gt;
return false;&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
Sin embargo, el método pop de la clase PILA devuelve un tipo de dato de referencia: un&lt;br /&gt;
objeto.&lt;br /&gt;
class Pila {&lt;br /&gt;
static final int PILA_VACIA = -1;&lt;br /&gt;
Object[] stackelements;&lt;br /&gt;
int topelement = PILA_VACIA;&lt;br /&gt;
. . .&lt;br /&gt;
Object pop() {&lt;br /&gt;
if (topelement == PILA_VACIA)&lt;br /&gt;
return null;&lt;br /&gt;
else {&lt;br /&gt;
return stackelements[topelement--];&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
Los métodos utilizan el operador return para devolver un valor. Todo método que no&lt;br /&gt;
sea declarado como void debe contener una sentencia return.&lt;br /&gt;
El tipo de dato del valor devuelto por la sentencia return debe corresponder con el tipo&lt;br /&gt;
de dato que el método tiene que devolver; no se puede devolver un objeto desde un&lt;br /&gt;
método que fue declarado para devolver un entero.&lt;br /&gt;
Cuando se devuelva un objeto, el tipo de dato del objeto devuelto debe ser una&lt;br /&gt;
subclase o la clase exacta indicada. Cuando se devuelva un tipo interface, el objeto&lt;br /&gt;
retornado debe implementar el interface especificado.&lt;br /&gt;
Un Nombre de Método&lt;br /&gt;
Un nombre de método puede ser cualquier indentificador legal en Java. Existen tres&lt;br /&gt;
casos especiales a tener en cuenta con los nombres de métodos:&lt;br /&gt;
Java soporta la sobrecarga de métodos, por eso varios métodos pueden compartir&lt;br /&gt;
el mismo nombre. Por ejemplo, supon que se ha escrito una clase que puede&lt;br /&gt;
proporcionar varios tipos de datos (cadenas, enteros, etc...) en un área de dibujo.&lt;br /&gt;
Se podría escribir un método que supiera como tratar a cada tipo de dato. En otros&lt;br /&gt;
lenguajes, se tendría que pensar un nombre distinto para cada uno de los&lt;br /&gt;
métodos. dibujaCadena(), dibujaEntero, etc... En Java, se puede utilizar el&lt;br /&gt;
mismo nombre para todos los métodos pasándole un tipo de parámetro diferente a&lt;br /&gt;
cada uno de los métodos. Entonces en la clase de dibujo, se podrán declarar tres&lt;br /&gt;
métodos llamados draw&amp;lt;() y que cada uno aceptara un tipo de parámetro&lt;br /&gt;
diferente:&lt;br /&gt;
class DibujodeDatos {&lt;br /&gt;
void draw(String s) {&lt;br /&gt;
. . .&lt;br /&gt;
}&lt;br /&gt;
void draw(int i) {&lt;br /&gt;
. . .&lt;br /&gt;
}&lt;br /&gt;
void draw(float f) {&lt;br /&gt;
. . .&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
Nota: La información que hay dentro de los paréntesis de la declaración son los&lt;br /&gt;
argumentos del método. Los argumentos se cubren en la siguiente página: Pasar&lt;br /&gt;
Información a un Método.&lt;br /&gt;
Los métodos son diferenciados por el compilador basándose en el número y tipo de&lt;br /&gt;
sus argumentos. Así draw(String s)y draw(int i) son métodos distintos y únicos.&lt;br /&gt;
No se puede declarar un método con la misma firma: draw(String s)y&lt;br /&gt;
draw(String t) son idénticos y darán un error del compilador.&lt;br /&gt;
Habrás observado que los métodos sobrecargados deben devolver el mismo tipo de&lt;br /&gt;
1.&lt;br /&gt;
dato, por eso void draw(String s) y int draw(String t) declarados en la misma&lt;br /&gt;
clase producirán un error en tiempo de compilación.&lt;br /&gt;
Todo método cuyo nombre sea igual que el de su clase es un constructor y tiene&lt;br /&gt;
una tarea especial que realizar. Los constructores se utilizan para inicializar un&lt;br /&gt;
objeto nuevo del tipo de la clase. Los constructores sólo pueden ser llamados con&lt;br /&gt;
el operador new. Para aprender cómo escribir un constructor, puedes ver Escribir&lt;br /&gt;
un Método Constructor.&lt;br /&gt;
2.&lt;br /&gt;
Una clase puede sobreescribir un método de sus superclases. El método que&lt;br /&gt;
sobreescribe debe tener el mismo, nombre, tipo de retorno y lista de parámetros&lt;br /&gt;
que el método al que ha sobreescrito. Sobreescribir Métodos te enseñará como&lt;br /&gt;
sobreescribir los métodos de una superclase.&lt;br /&gt;
3.&lt;br /&gt;
Caractersiticas Avanzadas de la Declaración de Métodos&lt;br /&gt;
Junto con los dos elementos necesarios, una declaración de método puede contener&lt;br /&gt;
otros elementos. Estos elementos declaran los argumentos aceptados por el método, si&lt;br /&gt;
el método es un método de clase, etc...&lt;br /&gt;
Juntándolo todo, una declaración de método se parecería a esto:&lt;br /&gt;
[especificadordeAcceso] [static] [abstract] [final] [native] [synchronized]&lt;br /&gt;
tipodeRetorno nombredelMétodo ([listadeparámetros]) [throws listadeExcepciones]&lt;br /&gt;
Cada uno de estos elementos de una declaración se cubre en alguna parte de este&lt;br /&gt;
tutorial.&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://kriptozcode.blogspot.com/feeds/3918780030255974425/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kriptozcode.blogspot.com/2009/09/implementacion-de-metodos.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/595442523977962160/posts/default/3918780030255974425'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/595442523977962160/posts/default/3918780030255974425'/><link rel='alternate' type='text/html' href='http://kriptozcode.blogspot.com/2009/09/implementacion-de-metodos.html' title='Implementación de Métodos'/><author><name>_-_-Luiz-_-_</name><uri>http://www.blogger.com/profile/04002041160161655189</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRZbWEQFxx1kHa5QXnhPeK_COgsquh9hnVnqkGeBk2oOZXghPWrMyFfFqw58uNb-LssIF0SR4jZo8Cw6U55NmkncvOX8tV-cCcIgJW5iZLrtjpJD5wk2JF2PKnoOCvD_M/s220/D_N_Angel_Dark_Plushie.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-595442523977962160.post-3488375781932168256</id><published>2009-09-16T11:59:00.000-07:00</published><updated>2009-09-16T12:04:58.578-07:00</updated><title type='text'>Crear Objetos</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;En Java, se crea un objeto mediante la creacción de un objeto de una clase o, en&lt;br /&gt;otras palabras, ejemplarizando una clase. Aprenderás cómo crear una clase más&lt;br /&gt;adelante en Crear Clases. Hasta entonces, los ejemplos contenidos aquí crean&lt;br /&gt;objetos a apartir de clases que ya existen en el entorno Java.&lt;br /&gt;Frecuentemente, se verá la creacción de un objeto Java con un sentencia como&lt;br /&gt;esta:&lt;br /&gt;Date hoy = new Date();&lt;br /&gt;Esta sentencia crea un objeto Date (Date es una clase del paquete java,util). Esta&lt;br /&gt;sentencia realmente realiza tres acciones: declaración, ejemplarización e&lt;br /&gt;inicialización. Date hoy es una declaración de variable que sólo le dice al&lt;br /&gt;compilador que el nombre hoy se va a utilizar para referirse a un objeto cuyo tipo&lt;br /&gt;es Date, el operador new ejemplariza la clase Date (creando un nuevo objeto&lt;br /&gt;Date), y Date() inicializa el objeto.&lt;br /&gt;Declarar un Objeto&lt;br /&gt;Ya que la declaración de un objeto es una parte innecesaria de la&lt;br /&gt;creacción de un objeto, las declaraciones aparecen frecuentemente en la&lt;br /&gt;misma línea que la creacción del objeto. Como cualquier otra declaración&lt;br /&gt;de variable, las declaraciones de objetos pueden aparecer solitarias como&lt;br /&gt;esta:&lt;br /&gt;Date hoy;&lt;br /&gt;De la misma forma, declarar una variable para contener un objeto es&lt;br /&gt;exactamente igual que declarar una variable que va a contener un tipo&lt;br /&gt;primitivo:&lt;br /&gt;tipo nombre&lt;br /&gt;donde tipo es el tipo de dato del objeto y nombre es el nombre que va a&lt;br /&gt;utilizar el objeto. En Java, las clases e interfaces son como tipos de&lt;br /&gt;datos. Entonces tipo puede ser el nombre de una clase o de un interface.&lt;br /&gt;Las declaraciones notifican al compilador que se va a utilizar nombre&lt;br /&gt;para referirse a una variable cuyo tipo es tipo. Las declaraciones no&lt;br /&gt;crean nuevos objetos. Date hoy no crea un objeto Date, sólo crea un&lt;br /&gt;nombre de variable para contener un objeto Date. Para ejemplarizar la&lt;br /&gt;clase Date, o cualquier otra clase, se utiliza el operador new.&lt;br /&gt;Ejemplarizar una Clase&lt;br /&gt;El operador new ejemplariza una clase mediante la asignación de&lt;br /&gt;memoria para el objeto nuevo de ese tipo. new necesita un sólo&lt;br /&gt;argumento: una llamada al método constructor. Los métodos&lt;br /&gt;constructores son métodos especiales proporcionados por cada clase&lt;br /&gt;Java que son reponsables de la inicialización de los nuevos objetos de&lt;br /&gt;ese tipo. El operador new crea el objeto, el constructor lo inicializa.&lt;br /&gt;Aquí tienes un ejemplo del uso del operador new para crear un objeto&lt;br /&gt;Rectangle (Rectangle es una clase del paquete java.awt):&lt;br /&gt;new Rectangle(0, 0, 100, 200);&lt;br /&gt;En el ejemplo, Rectangle(0, 0, 100, 200) es una llamada al&lt;br /&gt;constructor de la clase Rectangle.&lt;br /&gt;El operador new devuelve una referencia al objeto recien creado. Esta&lt;br /&gt;referencia puede ser asignada a una variable del tipo apropiado.&lt;br /&gt;Rectangle rect = new Rectangle(0, 0, 100, 200);&lt;br /&gt;(Recuerda que una clase escencialmente define un tipo de dato de&lt;br /&gt;referencia. Por eso, Rectangle puede utilizarse como un tipo de dato en&lt;br /&gt;los programas Java. El valor de cualquier variable cuyo tipo sea un tipo&lt;br /&gt;de referencia, es una referencia (un puntero) al valor real o conjunto de&lt;br /&gt;valores representado por la variable.&lt;br /&gt;Inicializar un Objeto&lt;br /&gt;Como mencioné anteriormente, las clases porporcionan métodos&lt;br /&gt;constructores para incializar los nuevos objetos de ese tipo. Una clase&lt;br /&gt;podría proporcionar múltiples constructores para realizar diferentes tipos&lt;br /&gt;de inicialización en los nuevos objetos. Cuando veas la implementación&lt;br /&gt;de una clase, reconocerás los constructores porque tienen el mismo&lt;br /&gt;nombre que la clase y no tienen tipo de retorno. Recuerda la creacción&lt;br /&gt;del objeto Date en el sección inicial. El constructor utilizado no tenía&lt;br /&gt;ningún argumento:&lt;br /&gt;Date()&lt;br /&gt;Un constructor que no tiene ningún argumento, como el mostrado arriba,&lt;br /&gt;es conocido como constructor por defecto. Al igual que Date, la mayoría&lt;br /&gt;de las clases tienen al menos un constructor, el constructor por defecto.&lt;br /&gt;Si una clase tiene varios constructores, todos ellos tienen el mismo&lt;br /&gt;nombre pero se deben diferenciar en el número o el tipo de sus&lt;br /&gt;argmentos. Cada constructor inicializa el nuevo objeto de una forma&lt;br /&gt;diferente. Junto al constructor por defecto, la clase Date proporciona otro&lt;br /&gt;constructor que inicializa el nuevo objeto con un nuevo año, mes y dia:&lt;br /&gt;Date cumpleaños = new Date(1963, 8, 30);&lt;br /&gt;El compilador puede diferenciar los constructores a través del tipo y del&lt;br /&gt;número de sus argumentos.&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kriptozcode.blogspot.com/feeds/3488375781932168256/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kriptozcode.blogspot.com/2009/09/crear-objetos.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/595442523977962160/posts/default/3488375781932168256'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/595442523977962160/posts/default/3488375781932168256'/><link rel='alternate' type='text/html' href='http://kriptozcode.blogspot.com/2009/09/crear-objetos.html' title='Crear Objetos'/><author><name>_-_-Luiz-_-_</name><uri>http://www.blogger.com/profile/04002041160161655189</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRZbWEQFxx1kHa5QXnhPeK_COgsquh9hnVnqkGeBk2oOZXghPWrMyFfFqw58uNb-LssIF0SR4jZo8Cw6U55NmkncvOX8tV-cCcIgJW5iZLrtjpJD5wk2JF2PKnoOCvD_M/s220/D_N_Angel_Dark_Plushie.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-595442523977962160.post-2280838078538942937</id><published>2009-09-16T11:55:00.000-07:00</published><updated>2009-09-16T11:59:01.957-07:00</updated><title type='text'>Declarar Clases</title><content type='html'>Ahora que ya sabemos como crear, utilizar y destruir objetos, es hora de aprender cómo escribir clasesde las que crear esos objetos.&lt;br /&gt;Una clase es un proyecto o prototipo que se puede utilizar para crear muchos objetos. La implementación de una clase comprende dos componentes: la declaración y el cuerpo de la clase:&lt;br /&gt;DeclaraciónDeLaClase {&lt;br /&gt;CuerpoDeLaClase&lt;br /&gt;}&lt;br /&gt;La Declaración de la Clase&lt;br /&gt;Como mínimo, la declaración de una clase debe contener la palabra clave class y el nombre de&lt;br /&gt;la clase que está definiendo. Así la declaración más sencilla de una clase se parecería a esto:&lt;br /&gt;class NombredeClase {&lt;br /&gt;. . .&lt;br /&gt;}&lt;br /&gt;Por ejemplo, esta clase declara una nueva clase llamada NumeroImaginario:&lt;br /&gt;class NumeroImaginario {&lt;br /&gt;. . .&lt;br /&gt;}&lt;br /&gt;Los nombres de las clases deben ser un identificador legal de Java y, por convención, deben&lt;br /&gt;empezar por una letra mayúscula. Muchas veces, todo lo que se necesitará será una&lt;br /&gt;declaración mínima. Sin embargo, la declaración de una clase puede decir más cosas sobre la&lt;br /&gt;clase. Más especificamente, dentro de la declaración de la clase se puede:&lt;br /&gt;l   declarar cual es la superclase de la clase.&lt;br /&gt;l   listar los interfaces implementados por la clase&lt;br /&gt;l   declarar si la clase es pública, abstracta o final&lt;br /&gt;Declarar la Superclase de la Clase&lt;br /&gt;En Java, todas las clases tienen una superclase. Si no se especifica una superclase para una&lt;br /&gt;clase, se asume que es la clase Object (declarada en java.lang). Entonces la superclase de&lt;br /&gt;NumeroImaginario es Object porque la declaración no explicitó ninguna otra clase. Para&lt;br /&gt;obtener más información sobre la clase Object, puede ver La clase Object.&lt;br /&gt;Para especificar explícitamente la superclase de una clase, se debe poner la palabra clave&lt;br /&gt;extends más el nombre de la superclase entre el nombre de la clase que se ha creado y el&lt;br /&gt;corchete abierto que abre el cuerpo de la clase, así:&lt;br /&gt;class NombredeClase extends NombredeSuperClase {&lt;br /&gt;. . .&lt;br /&gt;}&lt;br /&gt;Por ejemplo, supon que quieres que la superclase de NumeroImaginario sea la clase Number&lt;br /&gt;en vez de la clase Object. Se podróa escribir esto:&lt;br /&gt;class NumeroImaginario extends Number {&lt;br /&gt;. . .&lt;br /&gt;}&lt;br /&gt;Esto declara explícitamente que la clase Number es la superclase de NumeroImaginario. (La&lt;br /&gt;clase Number es parte del paquete java.lang y es la base para los enteros, los números en&lt;br /&gt;coma flotante y otros números).&lt;br /&gt;Declarar que Number es la superclase de NumeroImaginario declara implícitamente que&lt;br /&gt;NumeroImaginario es una subclase de Number. Una subclase hereda las variables y los&lt;br /&gt;métodos de su superclase.&lt;br /&gt;Crear una subclase puede ser tan sencillo como incluir la clausula extends en su declaración&lt;br /&gt;de clase. Sin embargo, se tendrán que hacer otras provisiones en su código cuando se crea una&lt;br /&gt;subclase, como sobreescribir métodos. Para obtener más información sobre la creacción de&lt;br /&gt;subclases, puede ver Subclases, Superclases, y Herencia.&lt;br /&gt;Listar los Interfaces Implementados por la Clase&lt;br /&gt;Cuando se declara una clase, se puede especificar que interface, si lo hay, está implementado&lt;br /&gt;por la clase. Pero, ¿Qué es un interface? Un interface declara un conjunto de métodos y&lt;br /&gt;constantes sin especificar su implementación para ningún método. Cuando una clase exige la&lt;br /&gt;implementación de un interface, debe proporcionar la implementación para todos los métodos&lt;br /&gt;declarados en el interface.&lt;br /&gt;Para declarar que una clase implementa uno o más interfaces, se debe utilizar la palabra clave&lt;br /&gt;implements seguida por una lista de los interfaces implementados por la clase delimitada por&lt;br /&gt;comas. Por ejemplo, imagina un interface llamado Aritmetico que define los métodos llamados&lt;br /&gt;suma(), resta(), etc... La clase NumeroImaginario puede declarar que implementa el&lt;br /&gt;interface Aritmetico de esta forma:&lt;br /&gt;class NumeroImaginario extends Number implements Aritmetico {&lt;br /&gt;. . .&lt;br /&gt;}&lt;br /&gt;se debe garantizar que propociona la implementación para los métodos suma(), resta() y&lt;br /&gt;demás métodos declarados en el interface Aritmetico. Si en NumeroImaginario falta alguna&lt;br /&gt;implementación de los métodos definidos en Aritmetico, el compilador mostrará un mensaje de&lt;br /&gt;error y no compilará el programa:&lt;br /&gt;nothing.java:5: class NumeroImaginario must be declared abstract. It does not define&lt;br /&gt;java.lang.Number add(java.lang.Number, java.lang.Number) from interface Aritmetico.&lt;br /&gt;class NumeroImaginario extends Number implements Aritmetico {&lt;br /&gt;^&lt;br /&gt;Por convención, la clausula implements sigue a la clausula extends si ésta existe.&lt;br /&gt;Observa que las firmas de los métodos declarados en el interface Aritmetico deben&lt;br /&gt;corresponder con las firmas de los métodos implementados en la clase NumeroImaginario.&lt;br /&gt;Tienes más información sobre cómo crear y utilizar interfaces en Crear y Utilizar Interfaces.&lt;br /&gt;Clases Public, Abstract, y Final&lt;br /&gt;Se puede utilizar uno de estos tres modificadores en una declaración de clase para declarar que&lt;br /&gt;esa clase es pública, abstracta o final. Los modificadores van delante de la palabra clave class&lt;br /&gt;y son opcionales.&lt;br /&gt;El modificador public declara que la clase puede ser utilizada por objetos que estén fuera del&lt;br /&gt;paquete actual. Por defecto, una clase sólo puede ser utiliza por otras clases del mismo&lt;br /&gt;paquete en el que están declaradas.&lt;br /&gt;public class NumeroImaginario extends Number implements Aritmetico {&lt;br /&gt;. . .&lt;br /&gt;}&lt;br /&gt;Por convención, cuando se utiliza la palabra public en una declaración de clase debemos&lt;br /&gt;asegurarnos de que es el primer item de la declaración.&lt;br /&gt;El modificador abstract declara que la clase es una clase abstracta. Una clase abstracta podría&lt;br /&gt;contener métodos abstractos (métodos sin implementación). Una clase abstracta está diseñada&lt;br /&gt;para ser una superclase y no puede ejemplarizarse. Para una discusión sobre las clases&lt;br /&gt;abstractas y cómo escribirlas puedes ver Escribir Clases y Métodos Abstractos.&lt;br /&gt;Utilizando el modificador final se puede declarar que una clase es final, que no puede tener&lt;br /&gt;subclases. Existen (al menos) dos razones por las que se podría querer hacer esto: razones de&lt;br /&gt;seguridad y razones de diseño. Para un mejor explicaión sobre las clases finales puedes ver&lt;br /&gt;Escribir Clases y Métodos Finales.&lt;br /&gt;Observa que no tiene sentido para una clase ser abstracta y final. En otras palabras, una clase&lt;br /&gt;que contenga métodos no implementados no puede ser final. Intentar declarar una clase como&lt;br /&gt;final y abstracta resultará en un error en tiempo de compilación.&lt;br /&gt;Sumario de la Daclaración de una Clase&lt;br /&gt;En suma, una declaración de clase se parecería a esto:&lt;br /&gt;[ modificadores ] class NombredeClase [ extends NombredeSuperclase ]&lt;br /&gt;[ implements NombredeInterface ] {&lt;br /&gt;. . .&lt;br /&gt;}&lt;br /&gt;Los puntos entre [ y ] son opcionales. Una declaración de clase define los siguientes aspectos&lt;br /&gt;de una clase:&lt;br /&gt;l   modificadores declaran si la clase es abstracta, pública o final.&lt;br /&gt;l   NombredeClase selecciona el nombre de la clase que está declarando&lt;br /&gt;l   NombredeSuperClase es el nombre de la superclase de NombredeClase&lt;br /&gt;NombredeInterface es una lista delimitada por comas de los interfaces implementados&lt;br /&gt;por NombredeClase&lt;br /&gt;l  &lt;br /&gt;De todos estos items, sólo la palabra clave class y el nombre de la clase son necesarios. Los&lt;br /&gt;otros son opcionales. Si no se realiza ninguna declaración explícita para los items opcionales, el&lt;br /&gt;compilador Java asume ciertos valores por defecto (una subclase de Object no final, no pública,&lt;br /&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;no obstracta y que no implementa interfaces).&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kriptozcode.blogspot.com/feeds/2280838078538942937/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kriptozcode.blogspot.com/2009/09/declarar-clases.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/595442523977962160/posts/default/2280838078538942937'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/595442523977962160/posts/default/2280838078538942937'/><link rel='alternate' type='text/html' href='http://kriptozcode.blogspot.com/2009/09/declarar-clases.html' title='Declarar Clases'/><author><name>_-_-Luiz-_-_</name><uri>http://www.blogger.com/profile/04002041160161655189</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRZbWEQFxx1kHa5QXnhPeK_COgsquh9hnVnqkGeBk2oOZXghPWrMyFfFqw58uNb-LssIF0SR4jZo8Cw6U55NmkncvOX8tV-cCcIgJW5iZLrtjpJD5wk2JF2PKnoOCvD_M/s220/D_N_Angel_Dark_Plushie.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-595442523977962160.post-2569184910765722606</id><published>2009-09-16T00:55:00.000-07:00</published><updated>2009-09-16T00:57:46.625-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="operadores"/><title type='text'>operadores</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;Los operadores realizan algunas funciones en uno o dos operandos. Los operadores que requieren un operador se llaman operadores unarios. Por ejemplo, ++ es un operador unario que incrementa el valor su operando en uno.&lt;br /&gt;Los operadores que requieren dos operandos se llaman operadores binarios. El operador = es un operador binario que asigna un valor del operando derecho al operando izquierdo.&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;Los operadores unarios en Java pueden utilizar la notación de prefijo o de sufijo. La&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;notación de prefijo significa que el operador aparece antes de su operando:&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;operador operando &lt;/span&gt;&lt;span class=&quot;fullpost&quot;&gt;La notación de sufijo significa que el operador aparece después de su operando: &lt;/span&gt;&lt;span class=&quot;fullpost&quot;&gt;operando operador&lt;/span&gt; &lt;span class=&quot;fullpost&quot;&gt;Todos los operadores binarios de Java tienen la misma notación, es decir &lt;/span&gt;&lt;span class=&quot;fullpost&quot;&gt;aparencen entre los dos operandos:&lt;/span&gt; &lt;span class=&quot;fullpost&quot;&gt;op1 operator op2&lt;/span&gt; &lt;span class=&quot;fullpost&quot;&gt;Además de realizar una operación también devuelve un valor. El valor y su tipo &lt;/span&gt;&lt;span class=&quot;fullpost&quot;&gt;dependen del tipo del operador y del tipo de sus operandos. Por ejemplo, los &lt;/span&gt;&lt;span class=&quot;fullpost&quot;&gt;operadores aritméticos (realizan las operaciones de aritmética básica como la suma &lt;/span&gt;&lt;span class=&quot;fullpost&quot;&gt;o la resta) devuelven números, el resultado típico de las operaciones aritmétcias.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class=&quot;fullpost&quot;&gt;El tipo de datos devuelto por los operadores aritméticos depende del tipo de sus&lt;/span&gt; &lt;span class=&quot;fullpost&quot;&gt;operandos: si sumas dos enteros, obtendrás un entero. Se dice que una operación &lt;/span&gt;&lt;span class=&quot;fullpost&quot;&gt;evalúa su resultado.&lt;/span&gt; &lt;span class=&quot;fullpost&quot;&gt;Es muy útil dividir los operadores Java en las siguientes categorías: aritméticos, &lt;/span&gt;&lt;span class=&quot;fullpost&quot;&gt;relacionales y condicionales. lógicos y de desplazamiento y de asignación. &lt;/span&gt;&lt;span class=&quot;fullpost&quot;&gt;Operadores Aritméticos&lt;/span&gt; &lt;span class=&quot;fullpost&quot;&gt;El lenguaje Java soporta varios operadores aritéticos - incluyendo + &lt;/span&gt;&lt;span class=&quot;fullpost&quot;&gt;(suma), - (resta), * (multiplicación), / (división), y % (módulo)-- en &lt;/span&gt;&lt;span class=&quot;fullpost&quot;&gt;todos los números enteros y de coma flotante. Por ejemplo, puedes &lt;/span&gt;&lt;span class=&quot;fullpost&quot;&gt;utilizar este código Java para sumar dos números:&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;sumaEsto + aEsto&lt;/span&gt; &lt;span class=&quot;fullpost&quot;&gt;O este código para calcular el resto de una división:&lt;/span&gt; &lt;span class=&quot;fullpost&quot;&gt;divideEsto % porEsto&lt;/span&gt; &lt;span class=&quot;fullpost&quot;&gt;Esta tabla sumariza todas las operaciones aritméticas binarias en Java: &lt;/span&gt;&lt;span class=&quot;fullpost&quot;&gt;Operador Uso Descripción &lt;/span&gt;&lt;span class=&quot;fullpost&quot;&gt;+ op1 + op2 Suma op1 y op2&lt;/span&gt; &lt;span class=&quot;fullpost&quot;&gt;- op1 - op2 Resta op2 de op1&lt;/span&gt; &lt;span class=&quot;fullpost&quot;&gt;* op1 * op2 Multiplica op1 y op2 &lt;/span&gt;&lt;span class=&quot;fullpost&quot;&gt;/ op1 / op2 Divide op1 por op2&lt;/span&gt; &lt;span class=&quot;fullpost&quot;&gt;% op1 % op2 Obtiene el resto de dividir op1 por&lt;/span&gt; &lt;span class=&quot;fullpost&quot;&gt;op2&lt;/span&gt; &lt;span class=&quot;fullpost&quot;&gt;Nota: El lenguaje Java extiende la definición del operador + para incluir &lt;/span&gt;&lt;span class=&quot;fullpost&quot;&gt;la concatenación de cadenas.&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;Los operadores + y - tienen versiones unarias que seleccionan el signo &lt;/span&gt;&lt;span class=&quot;fullpost&quot;&gt;del operando:&lt;/span&gt; &lt;span class=&quot;fullpost&quot;&gt;Operador Uso Descripción &lt;/span&gt;&lt;span class=&quot;fullpost&quot;&gt;+ + op Indica un valor positivo&lt;/span&gt; &lt;span class=&quot;fullpost&quot;&gt;- - op Niega el operando&lt;/span&gt; &lt;span class=&quot;fullpost&quot;&gt;Además, existen dos operadores de atajos aritméticos, ++ que &lt;/span&gt;&lt;span class=&quot;fullpost&quot;&gt;incrementa en uno su operando, y -- que decrementa en uno el valor de &lt;/span&gt;&lt;span class=&quot;fullpost&quot;&gt;su operando.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;Operador Uso Descripción&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;++ op ++ Incrementa op en 1; evalúa el valor antes de incrementar&lt;/span&gt; &lt;span class=&quot;fullpost&quot;&gt;++ ++ op Incrementa op en 1; evalúa el valor después de &lt;/span&gt;&lt;span class=&quot;fullpost&quot;&gt;incrementar&lt;/span&gt; &lt;span class=&quot;fullpost&quot;&gt;-- op -- Decrementa op en 1; evalúa el valor antes de decrementar &lt;/span&gt;&lt;span class=&quot;fullpost&quot;&gt;-- -- op Decrementa op en 1; evalúa el valor después de&lt;/span&gt; &lt;span class=&quot;fullpost&quot;&gt;decrementar&lt;/span&gt; &lt;span class=&quot;fullpost&quot;&gt;Operadores Relacionales y Condicionales &lt;/span&gt;&lt;span class=&quot;fullpost&quot;&gt;Los valores relacionales comparan dos valores y determinan la relación &lt;/span&gt;&lt;span class=&quot;fullpost&quot;&gt;entre ellos. Por ejemplo, != devuelve true si los dos operandos son&lt;/span&gt; &lt;span class=&quot;fullpost&quot;&gt;distintos.&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;Esta tabla sumariza los operadores relacionales de Java: &lt;/span&gt;&lt;span class=&quot;fullpost&quot;&gt;Operador Uso Devuelve true si&lt;/span&gt; &lt;span class=&quot;fullpost&quot;&gt;&gt; op1 &gt; op2 op1 es mayor que op2 &lt;/span&gt;&lt;span class=&quot;fullpost&quot;&gt;&gt;= op1 &gt;= op2 op1 es mayor o igual que op2&lt;/span&gt; &lt;span class=&quot;fullpost&quot;&gt;&lt; op2 =&quot;=&quot;&quot; op1 =&quot;=&quot;&quot;&gt; NUM_ENTRIES) &amp;amp;&amp;amp; (System.in.read() != -1))&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;Si count es menor que NUM_ENTRIES, la parte izquierda del operando de&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;&amp;amp;&amp;amp; evalúa a false. El operador &amp;amp;&amp;amp; sólo devuelve true si los dos&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;operandos son verdaderos. Por eso, en esta situación se puede&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;deteminar el valor de &amp;amp;&amp;amp; sin evaluar el operador de la derecha. En un&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;caso como este, Java no evalúa el operando de la derecha. Así no se&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;llamará a System.in.read() y no se leerá un carácter de la entrada&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;estandard.&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;Aquí tienes tres operadores condicionales:&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;Operador Uso Devuelve true si&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;&amp;amp;&amp;amp; op1 &amp;amp;&amp;amp; op2 op1 y op2 son verdaderos&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;|| op1 || op2 uno de los dos es verdadero&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;! ! op op es falso&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;El operador &amp;amp; se puede utilizar como un sinónimo de &amp;amp;&amp;amp; si ambos&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;operadores son booleanos. Similarmente, | es un sinonimo de || si&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;ambos operandos son booleanos.&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;Operadores de Desplazamiento&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;Los operadores de desplazamiento permiten realizar una manipualción&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;de los bits de los datos. Esta tabla sumariza los operadores lógicos y de&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;desplazamiento disponibles en el lenguaje Java:&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;Operador Uso Descripción&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;&gt;&gt; op1 &gt;&gt; op2 desplaza a la derecha op2 bits de op1&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;&lt;&gt;&gt;&gt; op1 &gt;&gt;&gt; op2 desplaza a la derecha op2 bits de op1(sin&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;signo)&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;&amp;amp; op1 &amp;amp; op2 bitwise and&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;| op1 | op2 bitwise or&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;^ op1 ^ op2 bitwise xor&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;~ ~ op bitwise complemento&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;Los tres operadores de desplazamiento simplemente desplazan los bits&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;del operando de la izquierda el número de posiciones indicadas por el&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;operador de la derecha. Los desplazamientos ocurren en la dirección&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;indicada por el propio operador. Por ejemplo:&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;13 &gt;&gt; 1;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;desplaza los bits del entero 13 una posición a la derecha. La&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;representación binaria del número 13 es 1101. El resultado de la&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;operación de desplazamiento es 110 o el 6 decimal. Observe que el bit&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;situado más a la derecha desaparece. Un desplazamiento a la derecha de&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;un bit es equivalente, pero más eficiente que, dividir el operando de la&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;izquierda por dos. Un desplazamiento a la izquierda es equivalente a&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;multiplicar por dos.&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;Los otros operadores realizan las funciones lógicas para cada uno de los&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;pares de bits de cada operando. La función &quot;y&quot; activa el bit resultante si&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;los dos operandos son 1.&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;op1 op2 resultado&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;0 0 0&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;0 1 0&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;1 0 0&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;1 1 1&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;Supon que quieres evaluar los valores 12 &quot;and&quot; 13:&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;12 &amp;amp; 13&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;El resultado de esta operación es 12. ¿Por qué? Bien, la representación&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;binaria de 12 es 1100 y la de 13 es 1101. La función &quot;and&quot; activa los bits&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;resultantes cuando los bits de los dos operandos son 1, de otra forma el&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;resultado es 0. Entonces si colocas en línea los dos operandos y realizas&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;la función &quot;and&quot;, puedes ver que los dos bits de mayor peso (los dos bits&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;situados más a la izquierda de cada número) son 1 así el bit resultante&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;de cada uno es 1. Los dos bits de menor peso se evalúan a 0 poque al&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;menos uno de los dos operandos es 0:&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;1101&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;&amp;amp; 1100&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;------&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;1100&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;El operador | realiza la operación O inclusiva y el operador ^ realiza la&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;operación O exclusiva. O inclusiva significa que si uno de los dos&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;operandos es 1 el resultado es 1.&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;op1 op2 resultado&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;0 0 0&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;0 1 1&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;1 0 1&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;1 1 1&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;O exclusiva significa que si los dos operandos son diferentes el resultado&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;es 1, de otra forma el resultado es 0:&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;op1 op2 resultado&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;0 0 0&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;0 1 1&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;1 0 1&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;1 1 0&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;Y finalmente el operador complemento invierte el valor de cada uno de&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;los bites del operando: si el bit del operando es 1 el resultado es 0 y si el&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;bit del operando es 0 el resultado es 1.&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;Operadores de Asignación&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;Puedes utilizar el operador de asignación =, para asignar un valor a otro.&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;Además del operador de asignación básico, Java proporciona varios&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;operadores de asignación que permiten realizar operaciones aritmétcias,&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;lógicas o de bits y una operación de asignación al mismo tiempo.&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;Especificamente, supon que quieres añadir un número a una variable y&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;asignar el resultado dentro de la misma variable, como esto:&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;i = i + 2;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;Puedes ordenar esta sentencia utilizando el operador +=.&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;i += 2;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;Las dos líneas de código anteriores son equivalentes.&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;Esta tabla lista los operadores de asignación y sus equivalentes:&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;Operador Uso Equivale a&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;+= op1 += op2 op1 = op1 + op2&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;-= op1 -= op2 op1 = op1 - op2&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;*= op1 *= op2 op1 = op1 * op2&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;/= op1 /= op2 op1 = op1 / op2&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;%= op1 %= op2 op1 = op1 % op2&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;&amp;amp;= op1 &amp;amp;= op2 op1 = op1 &amp;amp; op2&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;|= op1 |= op2 op1 = op1 | op2&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;^= op1 ^= op2 op1 = op1 ^ op2&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;&lt;= op1 &lt;&lt;= op2 op1 = op1 &lt;&lt;&gt;&gt;= op1 &gt;&gt;= op2 op1 = op1 &gt;&gt; op2&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;&gt;&gt;&gt;= op1 &gt;&gt;&gt;= op2 op1 = op1 &gt;&gt;&gt; op2&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;br /&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://kriptozcode.blogspot.com/feeds/2569184910765722606/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kriptozcode.blogspot.com/2009/09/operadores.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/595442523977962160/posts/default/2569184910765722606'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/595442523977962160/posts/default/2569184910765722606'/><link rel='alternate' type='text/html' href='http://kriptozcode.blogspot.com/2009/09/operadores.html' title='operadores'/><author><name>_-_-Luiz-_-_</name><uri>http://www.blogger.com/profile/04002041160161655189</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRZbWEQFxx1kHa5QXnhPeK_COgsquh9hnVnqkGeBk2oOZXghPWrMyFfFqw58uNb-LssIF0SR4jZo8Cw6U55NmkncvOX8tV-cCcIgJW5iZLrtjpJD5wk2JF2PKnoOCvD_M/s220/D_N_Angel_Dark_Plushie.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-595442523977962160.post-1593931844511049879</id><published>2009-09-16T00:50:00.000-07:00</published><updated>2009-09-16T00:53:51.517-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="conseptos basicos de java"/><category scheme="http://www.blogger.com/atom/ns#" term="tipos de datos"/><category scheme="http://www.blogger.com/atom/ns#" term="variables"/><title type='text'>variable y tipos de datos</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;Las variables son las partes importantes de un lenguaje de programación: ellas son las entidades (valores, datos) que actúan y sobre las que se actúa. Una declaración de variable siempre contiene dos componentes, el tipo de la variable y su nombre;&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;Tipos de Variables&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;Todas las variables en el lenguaje Java deben tener un tipo de dato. El&lt;/span&gt; &lt;span class=&quot;fullpost&quot;&gt;tipo de la variable determina los valores que la variable puede contener y &lt;/span&gt;&lt;span class=&quot;fullpost&quot;&gt;las operaciones que se pueden realizar con ella. &lt;/span&gt;&lt;span class=&quot;fullpost&quot;&gt;Existen dos categorias de datos principales en el lenguaje Java: los tipos&lt;/span&gt; &lt;span class=&quot;fullpost&quot;&gt;primitivos y los tipos referenciados. &lt;/span&gt;&lt;span class=&quot;fullpost&quot;&gt;Los tipos primitivos contienen un sólo valor e incluyen los tipos como los &lt;/span&gt;&lt;span class=&quot;fullpost&quot;&gt;enteros, coma flotante, los caracteres, etc... La tabla siguiente muestra&lt;/span&gt; &lt;span class=&quot;fullpost&quot;&gt;todos los tipos primitivos soportados por el lenguaje Java, su formato, su &lt;/span&gt;&lt;span class=&quot;fullpost&quot;&gt;tamaño y una breve descripción de cada uno:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class=&quot;fullpost&quot;&gt;Tipo Tamaño/Formato Descripción&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;(Números enteros)&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;byte 8-bit complemento a 2 Entero de un Byte&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;short 16-bit complemento a 2 Entero corto&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;int 32-bit complemento a 2 Entero&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;long 64-bit complemento a 2 Entero largo&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;(Números reales)&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;float 32-bit IEEE 754 Coma flotante de precisión simple&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;double 64-bit IEEE 754 Coma flotante de precisión doble&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;(otros tipos)&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;char 16-bit Caracter Un sólo carácter&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;boolean true o false Un valor booleano (verdadero o falso)&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;Los tipos referenciados se llaman así porque el valor de una variable de&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;referencia es una referencia (un puntero) hacia el valor real. En Java&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;tenemos los arrays, las clases y los interfaces como tipos de datos&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;referenciados.&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;br /&gt;Nombres de Variables&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;Un programa se refiere al valor de una variable por su nombre. Por&lt;/span&gt; &lt;span class=&quot;fullpost&quot;&gt;convención, en Java, los nombres de las variables empiezan con una &lt;/span&gt;&lt;span class=&quot;fullpost&quot;&gt;letra minúscula (los nombres de las clases empiezan con una letra &lt;/span&gt;&lt;span class=&quot;fullpost&quot;&gt;mayúscula).&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;br /&gt;Un nombre de variable Java:&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;debe ser un identificador legal de Java comprendido en una serie de&lt;/span&gt; &lt;span class=&quot;fullpost&quot;&gt;caracteres Unicode. Unicode es un sistema de codificación que &lt;/span&gt;&lt;span class=&quot;fullpost&quot;&gt;soporta texto escrito en distintos lenguajes humanos.Unicode &lt;/span&gt;&lt;span class=&quot;fullpost&quot;&gt;perminte la codificación de 34.168 caracteres. Esto le permite&lt;/span&gt; &lt;span class=&quot;fullpost&quot;&gt;utilizar en sus programas Java varios alfabetos como el Japonés, el &lt;/span&gt;&lt;span class=&quot;fullpost&quot;&gt;Griego, el Ruso o el Hebreo. Esto es importante para que los &lt;/span&gt;&lt;span class=&quot;fullpost&quot;&gt;programadores pueden escribir código en su lenguaje nativo.&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;1.&lt;/span&gt;&lt;span class=&quot;fullpost&quot;&gt;no puede ser el mismo que una palabra clave o el nombre de un&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;valor booleano (true or false)&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;2.&lt;/span&gt;&lt;span class=&quot;fullpost&quot;&gt;no deben tener el mismo nombre que otras variables cuyas&lt;/span&gt; &lt;span class=&quot;fullpost&quot;&gt;declaraciones aparezcan en el mismo ámbito.&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;3.&lt;/span&gt;&lt;span class=&quot;fullpost&quot;&gt;La regla número 3 implica que podría existir el mismo nombre en otra&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;variable que aparezca en un ámbito diferente. &lt;/span&gt;&lt;span class=&quot;fullpost&quot;&gt;Por convención, los nombres de variables empiezan por un letra &lt;/span&gt;&lt;span class=&quot;fullpost&quot;&gt;minúscula. Si una variable está compuesta de más de una palabra, como&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;&#39;nombreDato&#39; las palabras se ponen juntas y cada palabra después de la&lt;/span&gt; &lt;span class=&quot;fullpost&quot;&gt;primera empieza con una letra mayúscula. &lt;/span&gt;&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kriptozcode.blogspot.com/feeds/1593931844511049879/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kriptozcode.blogspot.com/2009/09/variable-y-tipos-de-datos.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/595442523977962160/posts/default/1593931844511049879'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/595442523977962160/posts/default/1593931844511049879'/><link rel='alternate' type='text/html' href='http://kriptozcode.blogspot.com/2009/09/variable-y-tipos-de-datos.html' title='variable y tipos de datos'/><author><name>_-_-Luiz-_-_</name><uri>http://www.blogger.com/profile/04002041160161655189</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRZbWEQFxx1kHa5QXnhPeK_COgsquh9hnVnqkGeBk2oOZXghPWrMyFfFqw58uNb-LssIF0SR4jZo8Cw6U55NmkncvOX8tV-cCcIgJW5iZLrtjpJD5wk2JF2PKnoOCvD_M/s220/D_N_Angel_Dark_Plushie.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-595442523977962160.post-9047421837747783540</id><published>2009-09-16T00:47:00.000-07:00</published><updated>2009-09-16T00:48:23.048-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="conseptos basicos"/><category scheme="http://www.blogger.com/atom/ns#" term="java"/><category scheme="http://www.blogger.com/atom/ns#" term="que es java"/><title type='text'>Conceptos basicos!!</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;Se puede hablar de Programación Orientada a Objetos cuando se reúnen las características de: abstracción, encapsulación, herencia y polimorfismo; y los conceptos básicos que las forman: objetos, mensajes, clases, instancias y métodos.&lt;br /&gt;&lt;br /&gt;Conceptos Básicos:&lt;br /&gt;&lt;br /&gt;   * Un objeto es una encapsulación abstracta de información, junto con los métodos o procedimientos para manipularla. Un objeto contiene operaciones que definen su comportamiento y variables que definen su estado entre las llamadas a las operaciones.&lt;br /&gt;   * Una clase equivale a la generalización o abstracción de un tipo específico de objetos.&lt;br /&gt;   * Un mensaje representa una acción a tomar por un determinado objeto.&lt;br /&gt;   * Una instancia es la concrección de una clase.&lt;br /&gt;   * Un método consiste en la implementación en una clase de un protocolo de respuesta a los mensajes dirigidos a los objetos de la misma. La respuesta a tales mensajes puede incluir el envío por el método de mensajes al propio objeto y aun a otros, también como el cambio del estado interno del objeto.&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;Características:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;La abstracción: Consiste en la generalización conceptual de un determinado conjunto de objetos y de sus atributos y propiedades, dejando en un segundo término los detalles concretos de cada objeto. ¿Qué se consigue con la abstracción? Bueno, básicamente pasar del plano material (cosas que se tocan) al plano mental (cosas que se piensan).&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;La encapsulación: Se refiere a la capacidad de agrupar y condensar en un entorno con límites bien-definidos distintos elementos. Cuando hablemos de encapsulación en general siempre nos referiremos, pues, a encapsulación abstracta. De manera informal, primero generalizamos (la abstracción) y luego decimos: la generalización está bien, pero dentro de un cierto orden: hay que poner límites (la encapsulación), y dentro de esos límites vamos a meter, a saco, todo lo relacionado con lo abstraído: no sólo datos, sino también métodos, comportamientos, etc.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;Por un lado es una abstracción pues, de acuerdo con la definición establecida anteriormente, es en ésta donde se definen las propiedades y atributos genéricos de determinados objetos con características comunes (recordemos el ejemplo de la sala de cine). La Clase es, por otro lado, una encapsulación porque constituye una cápsula o saco que encierra y amalgama de forma clara tanto los datos de que constan los objetos como los procedimientos que permiten manipularlos. Las Clases se constituyen, así, en abstracciones encapsuladas.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;La herencia: Se aplica sobre las clases. O sea, de alguna forma las clases pueden tener descendencia, y ésta heredará algunas características de las clases &quot;padres&quot;. Si disponemos las clases con un formato de árbol genealógico, tenderemos lo que se denomina una estructura jerarquizada de clases.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;La OOP promueve en gran medida que las relaciones entre objetos se basen en construcciones jerárquicas. Esto es, las clases pueden heredar diferencialmente de otras clases (denominadas &quot;superclases&quot;) determinadas características, mientras que, a la vez, pueden definir las suyas propias. Tales clases pasan, así, a denominarse &quot;subclases&quot; de aquéllas.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;La herencia se implementa mediante un mecanismo que se denomina derivación de clases: las superclases pasan a llamarse clases base, mientras que las subclases se constituyen en clases derivadas. El mecanismo de herencia está fuertemente entroncado con la reutilización del código en OOP. Una clase derivada posibilita, el fácil uso de código ya creado en cualquiera de las clases base ya existentes.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;El concepto de herencia constituye un estrato básico del paradigma de objetos, pero esto no significa que todas las relaciones entre clases en OOP deban ajustarse siempre a este modelo jerárquico. Es necesario establecer si la pretendida relación entre objetos es de pertenencia o de derivación. En una relación típica de pertenencia un objeto contiene al otro&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;Polimorfismo: Esta propiedad, como su mismo nombre sugiere múltiples formas, se refiere a la posibilidad de acceder a un variado rango de funciones distintas a través del mismo interfaz. O sea, que, en la práctica, un mismo identificador puede tener distintas formas (distintos cuerpos de función, distintos comportamientos) dependiendo, en general, del contexto en el que se halle inserto.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;El polimorfismo se puede establecer mediante la sobrecarga de identificadores y operadores, la ligadura dinámica y las funciones virtuales. El término sobrecarga se refiere al uso del mismo identificador u operador en distintos contextos y con distintos significados.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;La sobrecarga de funciones conduce a que un mismo nombre pueda representar distintas funciones con distinto tipo y número de argumentos. En el ámbito de la OOP, la sobrecarga de funciones equivale a que un mismo mensaje puede ser enviado a objetos de diferentes clases de forma que cada objeto respondería al mensaje apropiadamente.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;La sobrecarga de operadores permite, por otro lado, el desarrollo de un código más coherente, como especialización de la sobrecarga de funciones, posibilitando la re-definición (para tipos de datos definidos-por-el-usuario) de las operaciones realizadas por éstos (+, -, *, &gt;, etc.). Esto es, ocurre lo mismo que en la sobrecarga de funciones, pero aquí, en vez de identificadores de funciones, tenemos operadores.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;Gracias a la ligadura dinámica, pueden invocarse operaciones en objetos obviando el tipo actual del éstos hasta el momento de la ejecución del código.&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;Otros Conceptos&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;    * Agregación: Composición de un objeto por otros. Es una relación más débil que la que existe entre el atributo y el objeto al cual pertenece, y más fuerte que una asociación.&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;    * Concurrencia: Propiedad que distingue un objeto activo de otro inactivo.&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;    * Persistencia: Es la propiedad de un objeto cuya existencia trasciende el tiempo y/o el espacio (ej. el objeto continua existiendo luego de que su creador deja de existir / la ubicación de un objeto se mueve a un espacio de direcciones diferente de aquella donde fue creada).&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;    * Visibilidad: capacidad de restringir el acceso a atributos y servicios de un objeto. Particularmente importante en el diseño e implementación. (ej.: público / protegido / privado).&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;br /&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://kriptozcode.blogspot.com/feeds/9047421837747783540/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kriptozcode.blogspot.com/2009/09/conceptos-basicos.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/595442523977962160/posts/default/9047421837747783540'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/595442523977962160/posts/default/9047421837747783540'/><link rel='alternate' type='text/html' href='http://kriptozcode.blogspot.com/2009/09/conceptos-basicos.html' title='Conceptos basicos!!'/><author><name>_-_-Luiz-_-_</name><uri>http://www.blogger.com/profile/04002041160161655189</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRZbWEQFxx1kHa5QXnhPeK_COgsquh9hnVnqkGeBk2oOZXghPWrMyFfFqw58uNb-LssIF0SR4jZo8Cw6U55NmkncvOX8tV-cCcIgJW5iZLrtjpJD5wk2JF2PKnoOCvD_M/s220/D_N_Angel_Dark_Plushie.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-595442523977962160.post-3285261566707859169</id><published>2009-09-15T23:54:00.000-07:00</published><updated>2009-09-16T00:46:15.495-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="java"/><category scheme="http://www.blogger.com/atom/ns#" term="programacion"/><category scheme="http://www.blogger.com/atom/ns#" term="que es java"/><title type='text'>Que es java?</title><content type='html'>Java es un lenguaje de programación con el que podemos realizar cualquier tipo de programa. En la actualidad es un lenguaje muy extendido y cada vez cobra más importancia tanto en el ámbito de Internet como en la informática en general. Está desarrollado por la compañía Sun Microsystems con gran dedicación y siempre enfocado a cubrir las necesidades tecnológicas más punteras.&lt;br /&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;Una de las principales características por las que Java se ha hecho muy famoso es que es un lenguaje independiente de la plataforma. Eso quiere decir que si hacemos un programa en Java podrá funcionar en cualquier ordenador del mercado. Es una ventaja significativa para los desarrolladores de software, pues antes tenían que hacer un programa para cada sistema operativo, por ejemplo Windows, Linux, Apple, etc. Esto lo consigue porque se ha creado una Máquina de Java para cada sistema que hace de puente entre el sistema operativo y el programa de Java y posibilita que este último se entienda perfectamente.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;La independencia de plataforma es una de las razones por las que Java es interesante para Internet, ya que muchas personas deben tener acceso con ordenadores distintos. Pero no se queda ahí, Java está desarrollándose incluso para distintos tipos de dispositivos además del ordenador como móviles, agendas y en general para cualquier cosa que se le ocurra a la industria. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;Conclusión&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;En nuestro buscador en la sección de Java podemos encontrar muchas páginas con algunos tutoriales y fuentes de referencia muy útiles. Java es tan grande que si queremos hacer cosas complicadas no podremos aprenderlo todo a través de los tuturiales online y nos harán falta libros o cursos. La página de Java de Sun es sin duda la mejor referencia, aunque un poco avanzada para los que empiezan, es la referencia más útil para los que necesitan documentarse para algo en concreto. &lt;/span&gt;&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kriptozcode.blogspot.com/feeds/3285261566707859169/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kriptozcode.blogspot.com/2009/09/hola.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/595442523977962160/posts/default/3285261566707859169'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/595442523977962160/posts/default/3285261566707859169'/><link rel='alternate' type='text/html' href='http://kriptozcode.blogspot.com/2009/09/hola.html' title='Que es java?'/><author><name>_-_-Luiz-_-_</name><uri>http://www.blogger.com/profile/04002041160161655189</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRZbWEQFxx1kHa5QXnhPeK_COgsquh9hnVnqkGeBk2oOZXghPWrMyFfFqw58uNb-LssIF0SR4jZo8Cw6U55NmkncvOX8tV-cCcIgJW5iZLrtjpJD5wk2JF2PKnoOCvD_M/s220/D_N_Angel_Dark_Plushie.jpg'/></author><thr:total>0</thr:total></entry></feed>