<?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: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-5977111336964203668</id><updated>2011-07-08T04:41:32.601-07:00</updated><category term='bloques estáticos'/><category term='Visibilidad de una clase'/><category term='Clase Abstracta'/><category term='Atributos ocultos'/><category term='Argumentos variables'/><category term='variables estáticas'/><category term='Interface'/><category term='Java'/><category term='Static'/><title type='text'>GhostGirl and programming</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://programacionworld.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5977111336964203668/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://programacionworld.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Yasna Meza Hidalgo</name><uri>http://www.blogger.com/profile/12212900631707543448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp2.blogger.com/_BHdpTH59ksc/R4lIuXbOOuI/AAAAAAAAAFE/62CTL8x-2iQ/S220/PIC_0756.JPG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>9</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5977111336964203668.post-5005397682460548555</id><published>2010-05-01T15:38:00.000-07:00</published><updated>2010-05-01T15:55:44.288-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Atributos ocultos'/><category scheme='http://www.blogger.com/atom/ns#' term='Clase Abstracta'/><category scheme='http://www.blogger.com/atom/ns#' term='Interface'/><title type='text'>Ocultamiento de atributos (Field hide another field)</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span style="font-family:courier new;"&gt;Parece ambiguedad, pero no lo es, se trata del concepto de ocultamiento de atributos; el tema de este post es justamente ese: ¿cómo se deben considerar los atributos que tienen el mismo nombre en cierta jerarquía de clases?&lt;br /&gt;&lt;br /&gt;Observemos el siguiente ejemplo (clic sobre la imagen para ampliarla):&lt;span style="font-family:courier new;"&gt;&lt;a onblur="try  {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BHdpTH59ksc/S9yuUSr__2I/AAAAAAAADJg/AcexZJ0hxX0/s1600/Q-2010-05-01.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 200px; height: 145px;" src="http://3.bp.blogspot.com/_BHdpTH59ksc/S9yuUSr__2I/AAAAAAAADJg/AcexZJ0hxX0/s200/Q-2010-05-01.jpg" alt="" id="BLOGGER_PHOTO_ID_5466435711357943650" border="0" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;Dos preguntas al respecto:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:courier new;"&gt;¿Qué será lo que imprime en la salida estándar? y&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:courier new;"&gt;¿Por qué genera esa salida?&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;La salida es: 0, 2 y 1 que corresponden a los valores del atributo 'i' de cada objeto que fue creado (c, ca y cv).&lt;br /&gt;&lt;br /&gt;Lo interesante acá es que estos objetos fueron declarados de una forma y fueron creados de otra; la verdad es que no quedaba más opción porque no se pueden crear objetos de una clase abstracta y menos de una interfaz &gt;:o ... entonces se crean los tres objetos a partir de la clase CCar. Esta clase hereda de una clase e implementa una interfaz y, tanto en la clase abstracta como en la interfaz, cuentan con un atributo llamado 'i'. Por lo tanto, el atributo 'i' que va considerar será tomando en cuenta la forma en la que se declaró el objeto. Ahora, de forma natural, surge la pregunta de si este comportamiento se aplica de la misma forma cuando se trata de métodos .... pero eso será lo que revisaré en el siguiente post.&lt;br /&gt;&lt;br /&gt;Eso es todo por ahora, fin de la transmisión ... que Dios los bendiga.&lt;br /&gt;&lt;br /&gt;Bye&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5977111336964203668-5005397682460548555?l=programacionworld.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programacionworld.blogspot.com/feeds/5005397682460548555/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://programacionworld.blogspot.com/2010/05/ocultamiento-de-atributos.html#comment-form' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5977111336964203668/posts/default/5005397682460548555'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5977111336964203668/posts/default/5005397682460548555'/><link rel='alternate' type='text/html' href='http://programacionworld.blogspot.com/2010/05/ocultamiento-de-atributos.html' title='Ocultamiento de atributos (Field hide another field)'/><author><name>Yasna Meza Hidalgo</name><uri>http://www.blogger.com/profile/12212900631707543448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp2.blogger.com/_BHdpTH59ksc/R4lIuXbOOuI/AAAAAAAAAFE/62CTL8x-2iQ/S220/PIC_0756.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_BHdpTH59ksc/S9yuUSr__2I/AAAAAAAADJg/AcexZJ0hxX0/s72-c/Q-2010-05-01.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5977111336964203668.post-8014221886026661352</id><published>2010-02-16T13:32:00.000-08:00</published><updated>2010-02-16T13:51:19.478-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Argumentos variables'/><title type='text'>Respuestas a las interrogantes ....</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span style="font-family:courier new;"&gt;Tal y como lo mencionaba en el post anterior, voy a dar respuesta a las interrogantes que deje pendientes :-) ...&lt;br /&gt;&lt;br /&gt;En primer lugar estaba preguntando qué deberíamos hacer para poder imprimir el contenido del arreglo; bueno la respuesta pasa por considerar la siguiente variante del código:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_BHdpTH59ksc/S3sP9s6KElI/AAAAAAAADI0/0jXlf6fTFD4/s1600-h/Q3.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 200px; height: 112px;" src="http://2.bp.blogspot.com/_BHdpTH59ksc/S3sP9s6KElI/AAAAAAAADI0/0jXlf6fTFD4/s200/Q3.jpg" alt="" id="BLOGGER_PHOTO_ID_5438958527681532498" border="0" /&gt;&lt;/a&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;Acá vemos que se ha considerado el argumento como un arreglo de objetos, que en este caso si nos fijamos en la línea 22 estoy haciendo uso de los argumentos variables, luego se va a entender que dentro del método el argumento &lt;span style="color: rgb(0, 0, 153); font-weight: bold;"&gt;"objList"&lt;/span&gt; se trata como un arreglo de dos elementos (y cada uno de ellos es un arreglo de String), luego los elementos de &lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;"objList"&lt;/span&gt; se moldean a String[], lo cual no deja de ser peligroso, porque no se sabe con certeza que van a ser arreglos de String ... ahi deberíamos tratar la posible excepción (ClassCastException) que se generaría en caso de que no se pueda convertir, suponiendo por ejemplo, que llamamos al método usando elementos del tipo Integer[] por ejemplo ... pero bueno, ese no es el tema relevante acá :-p jejeje&lt;br /&gt;&lt;br /&gt;Finalmente, en la línea 17 se recorre el arreglo que se encuentra dentro del arreglo y recién ahí podemos acceder a los elementos como String que están dentro del arreglo ... insisto, quizás estoy tratando muy "relajadamente" el tema de la conversión ... pero sólo quería responder a la pregunta de cómo acceder a los elementos del arreglo ...&lt;br /&gt;&lt;br /&gt;La segunda pregunta que había planteado era qué era lo que sucedía si se eliminan los [] en la recepción del argumento dentro del método &lt;span style="color: rgb(0, 0, 153); font-weight: bold; font-style: italic;"&gt;printMeThat&lt;/span&gt; ... la respuesta acá es más o menos la que están imaginando (porque la están imaginando verdad? :-p jejeje) ahi se trata el arreglo como un objeto simple y de todas formas va a imprimir la referencia del arreglo y si agregamos el código que propuse antes el resultado sería EXACTAMENTE el mismo,  es decir, imprime el contenido de los arreglos (los valores de los String que están dentro de los arreglos).&lt;br /&gt;&lt;br /&gt;Bueno, esperando haberme explicado y agradeciendo a los que hayan leído hasta este punto, me despido&lt;br /&gt;&lt;br /&gt;Bye&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5977111336964203668-8014221886026661352?l=programacionworld.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programacionworld.blogspot.com/feeds/8014221886026661352/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://programacionworld.blogspot.com/2010/02/respuestas-las-interrogantes.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5977111336964203668/posts/default/8014221886026661352'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5977111336964203668/posts/default/8014221886026661352'/><link rel='alternate' type='text/html' href='http://programacionworld.blogspot.com/2010/02/respuestas-las-interrogantes.html' title='Respuestas a las interrogantes ....'/><author><name>Yasna Meza Hidalgo</name><uri>http://www.blogger.com/profile/12212900631707543448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp2.blogger.com/_BHdpTH59ksc/R4lIuXbOOuI/AAAAAAAAAFE/62CTL8x-2iQ/S220/PIC_0756.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_BHdpTH59ksc/S3sP9s6KElI/AAAAAAAADI0/0jXlf6fTFD4/s72-c/Q3.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5977111336964203668.post-7925140071435359203</id><published>2010-02-09T08:37:00.001-08:00</published><updated>2010-02-14T14:11:55.610-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Argumentos variables'/><title type='text'>Argumentos variables ...</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BHdpTH59ksc/S3GP6rqrEoI/AAAAAAAADBM/wRZpbTm9g3k/s1600-h/Q2.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px; height: 133px;" src="http://1.bp.blogspot.com/_BHdpTH59ksc/S3GP6rqrEoI/AAAAAAAADBM/wRZpbTm9g3k/s200/Q2.jpg" alt="" id="BLOGGER_PHOTO_ID_5436284463529792130" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family:courier new;"&gt;Acá va algo relacionado con los "famosos" argumentos variables. La sintaxis que utiliza los "..." luego del tipo de datos y antes del nombre de la variable es una de las reglas de oro para trabajar con los argumentos variables. Además se debe agregar otra regla que dice relación con que el argumento variable SIEMPRE debe ser el último de la lista de argumentos de un método. Si revisamos la siguiente figura:&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BHdpTH59ksc/S3GRF_JdHII/AAAAAAAADBg/tx67TQdrrLo/s1600-h/T1.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 200px; height: 80px;" src="http://4.bp.blogspot.com/_BHdpTH59ksc/S3GRF_JdHII/AAAAAAAADBg/tx67TQdrrLo/s200/T1.jpg" alt="" id="BLOGGER_PHOTO_ID_5436285757249363074" border="0" /&gt;&lt;/a&gt;&lt;span style="font-family:courier new;"&gt;notamos las consideraciones e interpretaciones que se van a tener respecto del trabajo con argumentos variables en los métodos.&lt;br /&gt;&lt;br /&gt;Ahora bien, analizando la posible respuesta a la pregunta que se plantea al prinicipio y que es el objetivo de este post :-) jejeje, puedo decir que:&lt;br /&gt;&lt;br /&gt;Dado que dentro de las alternativas se contempla un posible error de compilación se hace necesario analizar las líneas candidatas de ser causantes de un error de compilación. En el caso de la &lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;línea 6&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;&lt;/span&gt;no hay problema de sintaxis porque de acuerdo a las reglas ya revisadas se está definiendo un argumento variable. La &lt;span style="font-weight: bold; font-style: italic; color: rgb(204, 0, 0);"&gt;l&lt;/span&gt;&lt;span style="font-weight: bold; font-style: italic; color: rgb(153, 0, 0);"&gt;ínea 7 &lt;/span&gt;delclara y crea un arreglo declarado como Object y creado como String lo que no genera problema porque la regla dice que la forma en la cual se declara el objeto (la clase usada en la línea de declaración antes del nombre de la variable) debe ser de mayor jerarquía de la forma en la que se crea (lo que va después del operador &lt;span style="font-weight: bold; font-style: italic; color: rgb(0, 0, 153);"&gt;new&lt;/span&gt;). Finalmente, la línea 4 no presenta problema de sintaxis dado que se está usando una manera resumida de recorrer el arreglo (que se está recibiendo como argumento); esta forma de recorrer el arreglo va dejando en el objeto &lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;"obj" &lt;/span&gt;los elementos que se encuentran dentro del arreglo &lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;"objList" &lt;/span&gt;que es considerado como 0 o más arreglos de objetos.&lt;br /&gt;&lt;br /&gt;Dado el análisis anterior queda por ver si el programa genera alguna salida y si esa salida coincide con la expuesta en la alternativa D. En la &lt;span style="font-weight: bold; font-style: italic; color: rgb(153, 0, 0);"&gt;línea 8&lt;/span&gt; se realiza la llamada al método &lt;span style="font-weight: bold; font-style: italic; color: rgb(0, 0, 153);"&gt;printMeThat&lt;/span&gt; usando el arreglo de objetos &lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;"sArray"&lt;/span&gt;, por su parte, en la línea 3 el argumento &lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;"objList"&lt;/span&gt; está capacitado para recibir 0 o más arreglos de objetos por lo que los valores de la variable &lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;"obj"&lt;/span&gt; que se está declarando en la &lt;span style="font-weight: bold; font-style: italic; color: rgb(153, 0, 0);"&gt;línea 4 &lt;/span&gt;son elementos del tipo Arrays de objetos y es eso lo que intenta imprimir y es por esa razón que  va a imprimir la referencia del objeto (el arreglo en este caso) y no el contenido. Luego la alternativa correcta es la alternativa E.&lt;br /&gt;&lt;br /&gt;Ahora, como siempre, vienen las inquietudes "extras" las que voy a dejar planteadas para responderlas en el siguiente post:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:courier new;"&gt;¿Qué cambios se deben incluir para poder imprimir el contenido del arreglo?&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:courier new;"&gt;¿Qué sucede si se quitan los [] de la declaración del argumento en la línea 3?&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;Pensemos un poco en eso y en el siguiente post van las respuestas ;-)&lt;br /&gt;&lt;br /&gt;Bye&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5977111336964203668-7925140071435359203?l=programacionworld.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programacionworld.blogspot.com/feeds/7925140071435359203/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://programacionworld.blogspot.com/2010/02/argumentos-variables.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5977111336964203668/posts/default/7925140071435359203'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5977111336964203668/posts/default/7925140071435359203'/><link rel='alternate' type='text/html' href='http://programacionworld.blogspot.com/2010/02/argumentos-variables.html' title='Argumentos variables ...'/><author><name>Yasna Meza Hidalgo</name><uri>http://www.blogger.com/profile/12212900631707543448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp2.blogger.com/_BHdpTH59ksc/R4lIuXbOOuI/AAAAAAAAAFE/62CTL8x-2iQ/S220/PIC_0756.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_BHdpTH59ksc/S3GP6rqrEoI/AAAAAAAADBM/wRZpbTm9g3k/s72-c/Q2.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5977111336964203668.post-6543468684703785511</id><published>2010-01-31T16:59:00.000-08:00</published><updated>2010-01-31T17:27:04.458-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bloques estáticos'/><category scheme='http://www.blogger.com/atom/ns#' term='Static'/><category scheme='http://www.blogger.com/atom/ns#' term='variables estáticas'/><title type='text'>Bloques estáticos, variables estáticas, métodos estáticos ...</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BHdpTH59ksc/S2Yt1Dg0GnI/AAAAAAAAC_8/Dc0ASMSGEFs/s1600-h/Q1.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px; height: 178px;" src="http://1.bp.blogspot.com/_BHdpTH59ksc/S2Yt1Dg0GnI/AAAAAAAAC_8/Dc0ASMSGEFs/s200/Q1.jpg" alt="" id="BLOGGER_PHOTO_ID_5433080389968337522" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: justify; font-family: courier new;"&gt;Variables estáticas, bloques estáticos ... en general, miembros estáticos de una clase, qué son y cómo se comportan ... veamos algo de esto ...&lt;br /&gt;&lt;br /&gt;Técnicamente, los elementos estáticos (atributos, métodos) se denominan elementos de clase, porque son comunes a todos los elementos de la clase. Eso es lo que sucede con la variable x que se encuentra definida en la clase de la figura. Esta variable tiene asignado un valor y ese valor es 5 y es válido para TODAS LAS INSTANCIAS de la clase que se vayan a crear, es conveniente hacer notar que NO ES UNA CONSTANTE (debería tener el calificador &lt;span style="font-weight: bold; font-style: italic;"&gt;final&lt;/span&gt; para que sea), es muy útil hacer esa distinción ;-)&lt;br /&gt;&lt;br /&gt;Esta es una pregunta típica del examen de certidicación y apunta a demostrar el conocimiento de los elementos estáticos de una clase.&lt;br /&gt;&lt;br /&gt;Vamos ahora al análisis de la pregunta para obtener la respuesta correcta:&lt;br /&gt;&lt;br /&gt;Dado que, una de las alternativas, contempla la posibilidad de que haya un error en tiempo de ejeución se debe revisar si existe algún error en la lógica de programación .... debido a que sólo se crea un objeto anónimo (línea 13) y luego se imprime el valor de un atributo de clase y desde un método estático (regla de oro de los atributos estáticos) no se produce error en las únicas dos líneas con las que que cuenta el método main.&lt;br /&gt;&lt;br /&gt;Analizando ahora la posible respuesta se tiene que en la línea 13 se crea un objeto anónimo lo que hace que se cargue el bloque estático definido dentro de la clase donde asigna 10 al valor del atributo de clase "x" y cuando termina de ejecutarse el bloque de inicialización (definido entre las líneas 8 y 10) eso hace que el valor del atributo sea 20. Luego, en la línea 14 se imprime en la salida estándar el valor del atributo de clase "x" y, por las razones que se acaban de explicar, imprime un 20. Por lo tanto, la alternativa correcta es C; ¿respuesta definitiva? .... SI, respuesta definitiva.&lt;br /&gt;&lt;br /&gt;Como siempre, mi inquietud va más allá de conocer la respuesta correcta; así es que comienzo a plantearme las siguientes preguntas:&lt;br /&gt;&lt;br /&gt;¿Qué salida genera si se elimina el bloque de inicialización? La respuesta acá es más o menos obvia, dado que simplemente se va a quedar con el valor asignado dentro del bloque estático, es decir, un 10.&lt;br /&gt;&lt;br /&gt;Ahora, considerando nuevamente el bloque de inicialización ¿qué sucedería si la línea que imprime el valor de x se crea antes de crear el objeto anónimo? ... la respuesta es 10 ... ¿por qué? la razón es porque el bloque de inicialización se ejecuta cuando se crea una instancia de la clase y hasta ese momento sólo se ha ejecutado el bloque estático (una vez que se ha cargado la clase).&lt;br /&gt;&lt;br /&gt;Bueno, creo que eso nos introduce un poco a averiguar un poco más acerca de los elementos estáticos de una clase ...&lt;br /&gt;&lt;br /&gt;Saludos a todos los que se dieron la lata de leer hasta este punto :-)&lt;br /&gt;&lt;br /&gt;Bye&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5977111336964203668-6543468684703785511?l=programacionworld.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programacionworld.blogspot.com/feeds/6543468684703785511/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://programacionworld.blogspot.com/2010/01/bloques-estaticos-variables-estaticas.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5977111336964203668/posts/default/6543468684703785511'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5977111336964203668/posts/default/6543468684703785511'/><link rel='alternate' type='text/html' href='http://programacionworld.blogspot.com/2010/01/bloques-estaticos-variables-estaticas.html' title='Bloques estáticos, variables estáticas, métodos estáticos ...'/><author><name>Yasna Meza Hidalgo</name><uri>http://www.blogger.com/profile/12212900631707543448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp2.blogger.com/_BHdpTH59ksc/R4lIuXbOOuI/AAAAAAAAAFE/62CTL8x-2iQ/S220/PIC_0756.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_BHdpTH59ksc/S2Yt1Dg0GnI/AAAAAAAAC_8/Dc0ASMSGEFs/s72-c/Q1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5977111336964203668.post-5007891971827347254</id><published>2009-08-05T09:28:00.000-07:00</published><updated>2009-08-05T17:45:28.915-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Visibilidad de una clase'/><title type='text'>Pregunta simple ...</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span style="font-family:courier new;"&gt;Bueno, llevaba algunos meses alejada de este blog; pero ahora he regresado para mantenerlo como se debe; así es que sin más preambulos, vamos con la primera pregunta.&lt;br /&gt;&lt;br /&gt;Mire&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BHdpTH59ksc/Snm1OAPt-RI/AAAAAAAACiE/jxQ0Vmbnv7Y/s1600-h/Agosto_05.bmp"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px; height: 75px;" src="http://1.bp.blogspot.com/_BHdpTH59ksc/Snm1OAPt-RI/AAAAAAAACiE/jxQ0Vmbnv7Y/s200/Agosto_05.bmp" alt="" id="BLOGGER_PHOTO_ID_5366519683177380114" border="0" /&gt;&lt;/a&gt;&lt;span style="font-family:courier new;"&gt;n este simple ejemplo ... la pregunta de siempre es si compilará o no y en caso de que la respuesta sea negativa, entonces cuáles son las causas de los errores. Para algunos la respuesta puede resultar muy, pero muy obvia, pero lo importante como siempre es saber justificar la respuesta.&lt;br /&gt;&lt;br /&gt;Analizando el código tenemos:&lt;br /&gt;&lt;br /&gt;La clase A se encuentra definida dentro de un package llamado "certification" y la clase tiene una visibildad por 'default' que es distinta a la visibilidad 'public'. Esa clase compila sin ningún problema.&lt;br /&gt;&lt;br /&gt;Luego en la clase B se importa la clase A desde su package y se define la clase B como una sub-clase de A ... pero acá está el problema, al tratar de compilar nos encontramos con que no se puede tener acceso a la clase A (aunque la hayamos importado) porque la visibilidad de la clase A es por default, es decir, a nivel de package ... y la clase B se encuentra en otro package, por lo tanto, no tiene acceso a la clase A.&lt;br /&gt;&lt;br /&gt;La pregunta ahora es: ¿cómo se puede solucionar el problema?&lt;br /&gt;&lt;br /&gt;Entonces, qué podemos decir ahora si intentamos con el siguiente código:&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BHdpTH59ksc/Snm36fVk-5I/AAAAAAAACiM/6-DostTWUPw/s1600-h/Agosto_05_a.bmp"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px; height: 91px;" src="http://1.bp.blogspot.com/_BHdpTH59ksc/Snm36fVk-5I/AAAAAAAACiM/6-DostTWUPw/s200/Agosto_05_a.bmp" alt="" id="BLOGGER_PHOTO_ID_5366522646460955538" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;La clase C importa a la clase A, pero la va a utilizar sólo para crear objetos de esa clase, ¿será válido el acceso ahora?&lt;br /&gt;&lt;br /&gt;La respuesta sigue siendo la misma ... no se puede acceder a la clase A, la clase C está definida dentro de un package distinto y la clase A tiene acceso por default.&lt;br /&gt;&lt;br /&gt;Qué es lo relevante de estos simples ejemplos es la visibilidad de las clases, muchas veces me he encontrado con personas que piensan que el no incluir una visibilidad a la clase se asume que es público, pero NOOOOO, no es lo mismo. Sin embargo, hay una excepción a esa regla y tiene que ver con las interfaces ... pero eso lo dejaré para un próximo post.&lt;br /&gt;&lt;br /&gt;Bueno, eso es todo por ahora, un abrazo a todos los que pasan por acá.&lt;br /&gt;&lt;br /&gt;Saludos&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5977111336964203668-5007891971827347254?l=programacionworld.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programacionworld.blogspot.com/feeds/5007891971827347254/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://programacionworld.blogspot.com/2009/08/pregunta-simple.html#comment-form' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5977111336964203668/posts/default/5007891971827347254'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5977111336964203668/posts/default/5007891971827347254'/><link rel='alternate' type='text/html' href='http://programacionworld.blogspot.com/2009/08/pregunta-simple.html' title='Pregunta simple ...'/><author><name>Yasna Meza Hidalgo</name><uri>http://www.blogger.com/profile/12212900631707543448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp2.blogger.com/_BHdpTH59ksc/R4lIuXbOOuI/AAAAAAAAAFE/62CTL8x-2iQ/S220/PIC_0756.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_BHdpTH59ksc/Snm1OAPt-RI/AAAAAAAACiE/jxQ0Vmbnv7Y/s72-c/Agosto_05.bmp' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5977111336964203668.post-1825874352105978622</id><published>2009-04-17T16:25:00.000-07:00</published><updated>2009-04-17T16:35:22.091-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Una pregunta interesante</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_BHdpTH59ksc/SekQzwlj-2I/AAAAAAAACJ8/KOszsXSDda8/s1600-h/Interfaces.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px; height: 146px;" src="http://2.bp.blogspot.com/_BHdpTH59ksc/SekQzwlj-2I/AAAAAAAACJ8/KOszsXSDda8/s200/Interfaces.JPG" alt="" id="BLOGGER_PHOTO_ID_5325806515744144226" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family:courier new;"&gt;Hoy estaba preparando una guía de ejercicios para mi curso de Programación Orientada a Objetos y dentro de mis inventos elaboré el código que se encuentra en la figura (clic para ampliar la imagen)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BHdpTH59ksc/SekRNq4mzlI/AAAAAAAACKE/llvNbjTF04A/s1600-h/Interfaces-I.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px; height: 58px;" src="http://4.bp.blogspot.com/_BHdpTH59ksc/SekRNq4mzlI/AAAAAAAACKE/llvNbjTF04A/s200/Interfaces-I.JPG" alt="" id="BLOGGER_PHOTO_ID_5325806960890007122" border="0" /&gt;&lt;/a&gt;&lt;span style="font-family:courier new;"&gt;Primero, se puede preguntar si es válido el tratar de ejecutar el código de la figura de la izquieda.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_BHdpTH59ksc/SekRnx3vNJI/AAAAAAAACKM/XqLaEvhkWIo/s1600-h/Interfaces-II.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px; height: 58px;" src="http://2.bp.blogspot.com/_BHdpTH59ksc/SekRnx3vNJI/AAAAAAAACKM/XqLaEvhkWIo/s200/Interfaces-II.JPG" alt="" id="BLOGGER_PHOTO_ID_5325807409442010258" border="0" /&gt;&lt;/a&gt;&lt;span style="font-family:courier new;"&gt;Luego, se puede preguntar si es válido el código de la imagen anterior y responder luego por lo que imprime y, como siempre, la pregunta más interesante de todas ... ¿podemos justificar la respuesta?&lt;br /&gt;&lt;br /&gt;Responder a este tipo de preguntas justifica el conocimiento REAL que se tiene de los conceptos de OO aplicados a un lenguaje de programación.&lt;br /&gt;&lt;br /&gt;Saludos&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5977111336964203668-1825874352105978622?l=programacionworld.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programacionworld.blogspot.com/feeds/1825874352105978622/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://programacionworld.blogspot.com/2009/04/una-pregunta-interesante.html#comment-form' title='3 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5977111336964203668/posts/default/1825874352105978622'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5977111336964203668/posts/default/1825874352105978622'/><link rel='alternate' type='text/html' href='http://programacionworld.blogspot.com/2009/04/una-pregunta-interesante.html' title='Una pregunta interesante'/><author><name>Yasna Meza Hidalgo</name><uri>http://www.blogger.com/profile/12212900631707543448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp2.blogger.com/_BHdpTH59ksc/R4lIuXbOOuI/AAAAAAAAAFE/62CTL8x-2iQ/S220/PIC_0756.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_BHdpTH59ksc/SekQzwlj-2I/AAAAAAAACJ8/KOszsXSDda8/s72-c/Interfaces.JPG' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5977111336964203668.post-473791224502855012</id><published>2009-04-11T16:09:00.000-07:00</published><updated>2009-04-11T16:27:13.067-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Ranking de los lenguajes de programación</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span style="font-family:courier new;"&gt;Miren este &lt;a href="http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html"&gt;link&lt;/a&gt; de los índices de popularidad de los lenguajes de programación.&lt;br /&gt;&lt;br /&gt;Ahora, ya que Java está en el inicio de la lista :-o jeje, miren este código (clic en la imagen para ampliarla ;-) ):&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BHdpTH59ksc/SeEly_JEhlI/AAAAAAAACJ0/cyqw5OqZ6Xs/s1600-h/Abril_10.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px; height: 76px;" src="http://3.bp.blogspot.com/_BHdpTH59ksc/SeEly_JEhlI/AAAAAAAACJ0/cyqw5OqZ6Xs/s200/Abril_10.jpg" alt="" id="BLOGGER_PHOTO_ID_5323577792401802834" border="0" /&gt;&lt;/a&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-style: italic;"&gt;¿Qué se supone que debería imprimir?&lt;/span&gt;&lt;/span&gt; &lt;/span&gt;y la pregunta más importante e interesante es &lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;¿por qué imprime eso?&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;La respuesta apunta por entender la forma de operar de los métodos de clase respecto de la forma de los métodos de instancia. Agregguemos a eso las declaraciones en distintos niveles de la jerarquía de clases.&lt;br /&gt;&lt;br /&gt;Lo otro interesante es probar realizando los siguientes cambios:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:courier new;"&gt;Quitando el 'static' del methodA(Base b) y&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:courier new;"&gt;Cambiando: Derived d = new Derived(); por: Base d = new Derived();&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;¿Cambia en algo la salida?&lt;/span&gt;&lt;/span&gt;, independiente de si cambia o no, &lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;¿podemos justificar la salida?&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;En el próximo post va la explicación ... mientras tanto, tratemos de entender el comportamiento de los métodos de clase.&lt;br /&gt;&lt;br /&gt;Bye&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5977111336964203668-473791224502855012?l=programacionworld.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programacionworld.blogspot.com/feeds/473791224502855012/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://programacionworld.blogspot.com/2009/04/ranking-de-los-lenguajes-de.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5977111336964203668/posts/default/473791224502855012'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5977111336964203668/posts/default/473791224502855012'/><link rel='alternate' type='text/html' href='http://programacionworld.blogspot.com/2009/04/ranking-de-los-lenguajes-de.html' title='Ranking de los lenguajes de programación'/><author><name>Yasna Meza Hidalgo</name><uri>http://www.blogger.com/profile/12212900631707543448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp2.blogger.com/_BHdpTH59ksc/R4lIuXbOOuI/AAAAAAAAAFE/62CTL8x-2iQ/S220/PIC_0756.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_BHdpTH59ksc/SeEly_JEhlI/AAAAAAAACJ0/cyqw5OqZ6Xs/s72-c/Abril_10.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5977111336964203668.post-7506854546223450563</id><published>2009-03-02T15:02:00.000-08:00</published><updated>2009-03-03T05:29:52.080-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Algunas curiosidades ...</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_BHdpTH59ksc/Sa0unbqtTeI/AAAAAAAACIw/J3ESdyqeMtU/s1600-h/javaLogo.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 102px; height: 109px;" src="http://2.bp.blogspot.com/_BHdpTH59ksc/Sa0unbqtTeI/AAAAAAAACIw/J3ESdyqeMtU/s200/javaLogo.jpg" alt="" id="BLOGGER_PHOTO_ID_5308950790716345826" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family:courier new;"&gt;Durante mi preparación del examen de certificación de Java tuve que comenzar a analizar código y fijarme en detalles en los cuales nunca antes había ni siquiera pensado en fijarme. Muchas veces decimos que manejamos un lenguaje bien porque hemos programado un par de aplicaciones en él y con eso nos sentimos "expertos", pero de ser "experto" a conocer el lenguaje es otra cosa ... este post va dedicado a un par de curiosidades de ese tipo que encontré y la idea es que quienes se interesen traten de responder a las preguntas sin necesidad de compilar ... si, si sé, ustedes dirán ... pero cómo voy a responder si yo no soy un compilador ... pero dejenme decirles que justamente ahí está la gracia ... las primeras veces, las respuestas que damos no están ni cerca de lo correcto, pero luego aprendes y luego te basta con mirar un trozo de código y saber cuál podría ser la razón del problema ... y creanme que se los digo por experiencia propia ... yo siempre me he definido como una persona auto-didacta y nunca, mientras estudiaba, me quedaba simplemente con lo que los profesores nos entregaban en clases ... y creo que eso me ha ayudado a aprender todo lo que sé ... así es que si las primeras respuestas a las preguntas "capciosas" que acá voy a ir dejando de los distintos lenguajes en los cuales me va a tocar trabajar este año no son en un principio correctas, no importa, sigan intentando y se van a dar cuenta de que, poco a poco, van a ir ganando terreno en el lenguaje.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;Bueno, después de esta breve introducción :-o ... vamos con la primera pregunta:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_BHdpTH59ksc/Sa0ruuC0WnI/AAAAAAAACIY/ioOcbV9iw-Y/s1600-h/ShorTest.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 282px; height: 157px;" src="http://2.bp.blogspot.com/_BHdpTH59ksc/Sa0ruuC0WnI/AAAAAAAACIY/ioOcbV9iw-Y/s200/ShorTest.jpg" alt="" id="BLOGGER_PHOTO_ID_5308947617373510258" border="0" /&gt;&lt;/a&gt;&lt;span style="font-family:courier new;"&gt;Observando el siguiente código, ¿qué debería imprimir?&lt;br /&gt;&lt;br /&gt;Se trata de un ejemplo del uso de colecciones usando Generics y el tratamiento de los métodos característicos de tratamiento de colecciones: add y delete.&lt;br /&gt;&lt;br /&gt;Dentro de las posibles respuestas están 0 y 100. Según lo que se lee se agregan y se quitan elementos a la colección que hemos creado. Se entiende que agrega un elemento y debería eliminar el elemento anterior ... y fíjense que en la primera iteración debería eliminar el número 0. La colección es un objeto HashSet que se almacena en un objeto declarado como Set ... ¿saben lo que imprime?, pero la mejor pregunta es: ¿pueden justificar la respuesta? ... la respuesta la voy a dejar stand-by y la respuesta la daré en el próximo post ... a ver si llegan algunos comentarios dando la opinión de por qué creen que imprime lo que imprime.&lt;br /&gt;&lt;br /&gt;El código que sigue si que es curioso y ha sido uno de los que más me ha desconcertado ... jejeje, observen:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BHdpTH59ksc/Sa0sihYXEjI/AAAAAAAACIg/EmYrwC7GCOA/s1600-h/Uno.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px; height: 186px;" src="http://1.bp.blogspot.com/_BHdpTH59ksc/Sa0sihYXEjI/AAAAAAAACIg/EmYrwC7GCOA/s200/Uno.jpg" alt="" id="BLOGGER_PHOTO_ID_5308948507327402546" border="0" /&gt;&lt;/a&gt;&lt;span style="font-family:courier new;"&gt;En este caso la pregunta de rigor es: ¿por qué imprime lo que imprime en la salida estándar?&lt;br /&gt;&lt;br /&gt;La respuesta pasa por el comportamiento del null cuando se asigna a un objeto. El constructor de la clase Uno se encuentra sobrecargado y la clase Object tiene mayor prioridad, recuerden que la clase Object es la clase raíz (la clase padre de todas las clases) y por lo mismo está en el mayor nivel de jerarquía. La pregunta que debería quedar ahora es lo que se debería hacer para que imprima un "2" en la salida estándar, es decir, para que se ejecute el segundo constructor de la clase Uno.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BHdpTH59ksc/Sa0uXLB9n3I/AAAAAAAACIo/vtATg7nnGqE/s1600-h/TestCase.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 192px; height: 177px;" src="http://1.bp.blogspot.com/_BHdpTH59ksc/Sa0uXLB9n3I/AAAAAAAACIo/vtATg7nnGqE/s200/TestCase.jpg" alt="" id="BLOGGER_PHOTO_ID_5308950511372574578" border="0" /&gt;&lt;/a&gt;&lt;span style="font-family:courier new;"&gt;Finalmente, una utilidad, han leído algo sobre la clase TestCase ... bueno acá hay una aplicación de esa clase ... permite trabajar con casos de prueba para ir depurando nuestros métodos ... si bien es cierto las aserciones es muy poco probable que aparezcan en la prueba de certificación no es malo saber cómo funcionan.&lt;br /&gt;&lt;br /&gt;Para poder probar el código anterior necesitan el .jar asociado a junit, el cual lo pueden encontrar en el siguiente &lt;a href="http://www.junit.org/"&gt;link&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Bueno, creo que eso sería mi primer post ... relacionado con Java, luego vendrán otros en .NET y C para ir variando un poco ... todos con algunas curiosidades y utilidades que nos ayuden a conocer más los lenguajes de programación.&lt;br /&gt;&lt;br /&gt;Saludos a todos y que Dios los bendiga&lt;br /&gt;&lt;br /&gt;Bye&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5977111336964203668-7506854546223450563?l=programacionworld.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programacionworld.blogspot.com/feeds/7506854546223450563/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://programacionworld.blogspot.com/2009/03/algunas-curiosidades.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5977111336964203668/posts/default/7506854546223450563'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5977111336964203668/posts/default/7506854546223450563'/><link rel='alternate' type='text/html' href='http://programacionworld.blogspot.com/2009/03/algunas-curiosidades.html' title='Algunas curiosidades ...'/><author><name>Yasna Meza Hidalgo</name><uri>http://www.blogger.com/profile/12212900631707543448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp2.blogger.com/_BHdpTH59ksc/R4lIuXbOOuI/AAAAAAAAAFE/62CTL8x-2iQ/S220/PIC_0756.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_BHdpTH59ksc/Sa0unbqtTeI/AAAAAAAACIw/J3ESdyqeMtU/s72-c/javaLogo.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5977111336964203668.post-8034269014710487786</id><published>2009-02-21T15:05:00.000-08:00</published><updated>2009-02-21T15:05:00.555-08:00</updated><title type='text'>Creación de blog técnico</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_BHdpTH59ksc/SaBEIKgXIWI/AAAAAAAACHo/wKgK9yiZlkw/s1600-h/DukeJuggle.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px; height: 198px;" src="http://2.bp.blogspot.com/_BHdpTH59ksc/SaBEIKgXIWI/AAAAAAAACHo/wKgK9yiZlkw/s200/DukeJuggle.gif" alt="" id="BLOGGER_PHOTO_ID_5305315268092174690" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Hi!!!&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family:courier new;"&gt;Este es el post de inicio en mi blog técnico. Acá trataré de traspasar algunos trucos relacionados con la programación, una de las pasiones que tengo en mi vida :-). Normalmente, son varios los lenguajes en los que me toca programar, por cuestiones académicas tengo que pasar por C, Java y ahora C# y Visual Basic .NET.&lt;br /&gt;&lt;br /&gt;En épocas pasadas (nótese que son épocas y no vidas pasadas jeje) estuve programando en Prolog, Scheme; pero hace tiempo que no veo la programación lógica ...&lt;br /&gt;&lt;br /&gt;Bueno, esto es el resultado de mi primer post ... como decía antes acá trataré de ir posteando cuestiones relacionadas con la programación. Algunos tutoriales que he ido elaborando, por si pierdo la memoria, tengo que tener un registro que respalde lo que he aprendido jejeje.&lt;br /&gt;&lt;br /&gt;Un saludo a todos los que pasan por acá y espero mantener este blog de manera más o menos razonable.&lt;br /&gt;&lt;br /&gt;Bye &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5977111336964203668-8034269014710487786?l=programacionworld.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programacionworld.blogspot.com/feeds/8034269014710487786/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://programacionworld.blogspot.com/2009/02/creacion-de-blog-tecnico.html#comment-form' title='3 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5977111336964203668/posts/default/8034269014710487786'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5977111336964203668/posts/default/8034269014710487786'/><link rel='alternate' type='text/html' href='http://programacionworld.blogspot.com/2009/02/creacion-de-blog-tecnico.html' title='Creación de blog técnico'/><author><name>Yasna Meza Hidalgo</name><uri>http://www.blogger.com/profile/12212900631707543448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp2.blogger.com/_BHdpTH59ksc/R4lIuXbOOuI/AAAAAAAAAFE/62CTL8x-2iQ/S220/PIC_0756.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_BHdpTH59ksc/SaBEIKgXIWI/AAAAAAAACHo/wKgK9yiZlkw/s72-c/DukeJuggle.gif' height='72' width='72'/><thr:total>3</thr:total></entry></feed>
